我试图从数组中提取每两个连续的列,每对写一个.dat。问题是,当使用write.table()时,它会覆盖文件。当我使用print()而不是write.table()时,它会显示正确的子集。
我还需要文件名来显示所选列对的数量(总共6对),以及维度的数量(从1到5)。为此,我使用了一个更简单的解决方案,例如标记1:30。
for(i in 0:5) {
for (j in 1:5) {
for (k in 1:30) {
filename <- paste("Component",k, ".dat", sep="")
write.table(data[,c(2*i+1,2*i+2),j],col.names=F, row.names=F, sep= " ")
}
}
}
任何提示为什么它不起作用? 我希望我的目标是可以理解的。非常感谢你的时间!
答案 0 :(得分:2)
将参数append
设置为TRUE
:
write.table(data[,c(2*i+1,2*i+2),j],
file=filename,
append=TRUE,
col.names=F,
row.names=F,
sep= " ")
另外,正如@Roland正确指出的那样,你忘记了传递文件参数(已在上面的例子中添加)。