Rでループ内にループを記述しようとしていますが、内側のループだけが機能しているようです:
test <- rbind(c(1:30), c(31:60), c(61:90), c(91:120))
これが私が書いたものです:
b<- data.frame()
n<-1
i<-1
c<- data.frame()
while(i<=4){
while(n<=10) {
a<-cbind(test[i, 3*n-2], test[i, 3*n-1], test[i,3*n])
b<-rbind(b,a); n<-n+1
} ; i<-i+1; c<-cbind(c,b)
}
基本的に私がやろうとしているのは、各行を 3 つの列でグループ化し、それを複数の行に変換してから、すべての行に対して実行し、これらの列をバインドすることです。
私の望ましい出力は次のようになります。
1 2 3 31 32 33 61 62 63 81 82 83
4 5 6 34 35 36 64 65 66 84 85 86
7 8 9 37 38 39 67 68 69 ......
10 11 12 40 41 42 ......
13 14 15 43 45 46
16 17 18 ......
19 20 21
22 23 24
25 26 27
28 29 30 58 59 60 78 79 80 118 119 120
しかし、私が書いたものは最初の行でしか機能せず、明らかに外側のループは機能しません。何が問題なのですか?
編集:forループに応じてさらに試したことは次のとおりです。
b<- data.frame()
c<- data.frame()
for(i in seq(from = 1, to = 4, by =1)){
for( n in seq(from=1, to=10, by=1)) {
a <- cbind(test[i, 3*n-2], test[i, 3*n-1], test[i,3*n])
b <- rbind(b,a)
}
c <- cbind(c,b)
}
しかし、私はまだそれを機能させることができませんでした。どうしたの?