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