假设我正在使用以下数据框:
Mydata <- data.frame(X1 = c(1,2,3,4,5,6,7,8,9,10),X2 = c(1,3,1,1,1,5,1,1,8,1),
X3 = c(1,2,3,4,5,6,7,8,9,10),X4 = c(1,3,1,1,1,5,1,1,8,1),
X5 = c(1,2,3,4,5,6,7,8,9,10),X6 = c(1,3,1,1,1,5,1,1,8,1),
X7 = c(1,2,3,4,5,6,7,8,9,10),X8 = c(1,3,1,1,1,5,1,1,8,1),
X9 = c(1,2,3,4,5,6,7,8,9,10),X10 = c(1,3,1,1,1,5,1,1,8,1),
X11 = c(1,2,3,4,5,6,7,8,9,10),X12 = c(1,3,1,1,1,5,1,1,8,1))
我想将此数据帧分为三个单独的数据帧,一个数据帧中的列X1〜X4,第二个数据帧中的X5〜X8,以及X9〜X12。我将如何编码以继续此模式以用于任意数量的列?
答案 0 :(得分:4)
每4列拆分Mydata
。我们可以显式使用split.default
:
split.default(Mydata, rep(1:3, each = 4))
The "default" method can split a data frame by columns。只需根据需要设置分组变量即可。
对于平衡分组,gl
很方便(请参阅?gl
)。我们可以使用gl(3, 4)
代替上面的rep(1:3, 4)
,这样可以避免类型从“整数”转换为“ factor”。
通常,将gl(ncol(Mydata) / n, n)
用于“每n列”(n
必须除以ncol(Mydata)
)。