我正在尝试在 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)
}
基本上我要做的是将每行按三列分组并将其转换为多行,然后对每一行执行并绑定这些列。
我想要的输出如下所示:
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)
}
但我仍然无法让它工作。它出什么问题了?