将数据集拆分为具有相同列数的数据帧列表

时间:2017-03-07 09:26:59

标签: r split

我有一个包含36列和单个观察的数据集。我想将它拆分成一个列表,每个数据帧有3列,然后将它们rbind到一个数据帧。 我一直在使用以下代码:

m=12
nc<-ncol(df)
df1<-lapply(split(as.list(df), cut(1:nc, m, labels = FALSE)), as.data.frame)
df1<-do.call("rbind",df1)

此代码正常运行。但是当我尝试在闪亮的应用程序中运行此代码时,问题出现了。

有人可以建议替换上面的代码

1 个答案:

答案 0 :(得分:0)

我们可以通过生成特定序列来split一行数据帧

do.call("rbind", split(c(t(df)), rep(seq(1, ncol(df)/3), each = 3)))

,其中

rep(seq(1, ncol(df)/3), each = 3) 

会生成

[1]  1  1  1  2  2  2  3  3  3  4  4  4  5  5  5  6  6  6  7  7  7  8  8  8  
     9  9  9 10 10 10 11 11 11 12 12 12