在R中,如何创建一个循环来划分数据框中的列

时间:2010-07-06 18:08:59

标签: r loops for-loop

在R中,我想创建一个循环,它接收我的数据帧的前3000列并将它们写入一个文件,接下来的3000列写入另一个文件,依此类推,直到所有列都被分割因此。最好的方法是什么?我知道现在可以通过CRAN使用isplit和迭代器函数,但我真的不确定如何解决这个问题。有什么建议吗?

2 个答案:

答案 0 :(得分:9)

您可以尝试以下方式:

library(plyr)
max.col <- ncol(x)
l_ply(seq(1, max.col, by=3000), function(i) 
    write.table(x[,i:min(i+2999, max.col)], file=paste("i", i, sep="-"))
)

答案 1 :(得分:1)

不知道你为什么要加载plyr ...假设你的数据框是df ...(从Shane的答案中偷走了明智的min())

maxCol <- ncol(df)
for (i in seq(1, maxCol, by 3000)) {
     write.table(df[,i:min(i+2999, maxCol)], "i")
}

您可能需要编辑上面的write.table命令以添加首选格式。