【问题标题】:How do I split a data frame among columns, say at every nth column?如何在列之间拆分数据框,例如在每 n 列?
【发布时间】:2019-01-03 21:49:09
【问题描述】:

假设我正在使用以下数据框:

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 列。我将如何编写代码来为任意数量的列继续这种模式?

【问题讨论】:

  • split.default(Mydata, ceiling(seq_along(Mydata)/4)) 做同样的事情,但不需要你知道你有多少列

标签: r dataframe split


【解决方案1】:

Mydata 每 4 列拆分一次。我们可以显式使用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),这样就避免了从“整数”到“因子”的类型转换。

一般情况下,“每 n 列”使用 gl(ncol(Mydata) / n, n)n 必须除以 ncol(Mydata))。

【讨论】:

    猜你喜欢
    • 2018-07-06
    • 2015-08-28
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    相关资源
    最近更新 更多