아무에게도 도움을 줄 수 있습니까?다른 행 수를 루프 내에서 검색하려면
매트릭스의 열을 특정 합계로 검색하려고합니다 (예 : 120). 나는 그것이 작동 하는지를 단지 알 수 없다. 합계가 120에 도달하면 곧바로 한 열에서 계산을 중지해야합니다. 문제는 내 공식에서 두 번째 i (a [i + 0 : i, j]) 인 것처럼 보입니다.
a <- matrix(1:100, nrow=10)
a
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] 1 11 21 31 41 51 61 71 81 91
[2,] 2 12 22 32 42 52 62 72 82 92
[3,] 3 13 23 33 43 53 63 73 83 93
[4,] 4 14 24 34 44 54 64 74 84 94
[5,] 5 15 25 35 45 55 65 75 85 95
[6,] 6 16 26 36 46 56 66 76 86 96
[7,] 7 17 27 37 47 57 67 77 87 97
[8,] 8 18 28 38 48 58 68 78 88 98
[9,] 9 19 29 39 49 59 69 79 89 99
[10,] 10 20 30 40 50 60 70 80 90 100
b <- matrix(ncol=ncol(a), nrow=nrow(a))
for(i in 1:10) {
for(j in 1:10) {
if(sum(a[i+0:i,j])>120) {
b[i+0:i,j] <- a[i+0:i,j]
break}
}
}
이것은 내가 얻은 것입니다.
b
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] NA NA NA NA NA NA 61 NA NA NA
[2,] NA NA NA NA 42 NA 62 NA NA NA
[3,] NA NA NA 33 43 NA NA NA NA NA
[4,] NA NA 24 34 44 NA NA NA NA NA
[5,] NA NA 25 35 NA NA NA NA NA NA
[6,] NA NA 26 36 NA NA NA NA NA NA
[7,] NA NA 27 NA NA NA NA NA NA NA
[8,] NA NA 28 NA NA NA NA NA NA NA
[9,] NA NA 29 NA NA NA NA NA NA NA
[10,] NA NA 30 NA NA NA NA NA NA NA
그러나 나는 이렇게 보길 원합니다.
b
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10]
[1,] NA 11 21 31 41 51 61 71 81 91
[2,] NA 12 22 32 42 52 62 72 82 92
[3,] NA 13 23 33 43 53 NA NA NA NA
[4,] NA 14 24 34 NA NA NA NA NA NA
[5,] NA 15 25 NA NA NA NA NA NA NA
[6,] NA 16 26 NA NA NA NA NA NA NA
[7,] NA 17 NA NA NA NA NA NA NA NA
[8,] NA 18 NA NA NA NA NA NA NA NA
[9,] NA 19 NA NA NA NA NA NA NA NA
[10,] NA NA NA NA NA NA NA NA NA NA
모든 힌트를 주셔서 감사합니다. 내가 잘 이해하면
'i + 0 : i'가 잘못되었습니다. 결과는'i + c (0,1,2, ..., i)'이다. 'i == 6 '이라면'i + i == 12'와'12> nrow (a)'때문에 실패 할 것이다. BTW IMHO 열은 '1 : 10'이어야하며 '아니요'('sum (1:10) <120'이므로)가 아니어야합니다. – sgibb
예 i + 0 : 틀 렸습니다. 하지만 다른 무엇을 넣을 수있는 아이디어가 있습니까 – user3472591