1

すべてのペアで .dat を書き込んで、配列から連続する 2 列ごとに抽出しようとしています。問題は、 write.table() を使用するとファイルが上書きされることです。ただし、write.table() の代わりに print() を使用すると、正しいサブセットが表示されます。

また、選択した列のペアの数 (合計 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 が正しく指摘したように、file 引数を渡すのを忘れています (上記の例では既に追加されています)。

于 2013-08-12T09:58:05.047 に答える