假设我正在使用以下数据框:
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))
Run Code Online (Sandbox Code Playgroud)
我想将此数据帧分为三个单独的数据帧,一个数据帧中的列X1〜X4,第二个数据帧中的X5〜X8,以及X9〜X12。我将如何编写代码以继续此模式以用于任意数量的列?
Mydata
每4列拆分一次。我们可以显式使用split.default
:
split.default(Mydata, rep(1:3, each = 4))
Run Code Online (Sandbox Code Playgroud)
“默认”方法可以按列拆分数据帧。只需根据需要设置分组变量。
对于平衡分组,gl
非常方便(请参阅参考资料?gl
)。我们可以在上面使用gl(3, 4)
来代替rep(1:3, 4)
,这样可以避免类型从“整数”转换为“因子”。
通常,gl(ncol(Mydata) / n, n)
用于“每n列”(n
必须除法ncol(Mydata)
)。
归档时间: |
|
查看次数: |
223 次 |
最近记录: |