1

我试图从一个数组中提取每两个连续的列,每对都写一个 .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= " ")    
    } 
  }
}

任何提示为什么它不起作用?我希望我的目标是可以理解的。非常感谢您的时间!

4

1 回答 1

2

将参数设置appendTRUE

write.table(data[,c(2*i+1,2*i+2),j], 
            file=filename, 
            append=TRUE,
            col.names=F, 
            row.names=F, 
            sep= " ")

此外,正如@Roland 正确指出的那样,您忘记传递文件参数(已在我上面的示例中添加)。

于 2013-08-12T09:58:05.047 回答