8

ベクトルに含まれる情報があります。例:

sequence1<-seq(1:20)
sequence2<-seq(21:40)
...

そのデータをファイルに追加したいので、次を使用しています。

write.table(sequence1,file="test.csv",sep=",",append=TRUE,row.names=FALSE,col.names=FALSE)
write.table(sequence2,file="test.csv",sep=",",append=TRUE,row.names=FALSE,col.names=FALSE)

しかし、問題は、これが次のようにすべて1つの列に追加されることです。

1
2
3
...
21
22
...
40

そのデータを列に追加して、次のようになります。

1         21
2         22
3         23
...       ...
20        40

Rを使用してそれを行うにはどうすればよいですか?

4

4 に答える 4

11

列をファイルに直接追加することはできませんが、それをdata.frameに読み込み、列に追加して、結果をcsvファイルとして書き込むことができます。

tmp <- read.csv("original_file.csv")
tmp <- cbind(tmp, new_column)
write.csv(tmp, "modified_file.csv")
于 2013-09-19T17:01:41.000 に答える
6

write.tabledata.frameまたはマトリックスをファイルに書き込みます。を使用して2列のdata.frame(またはマトリックス)をファイルに書き込む場合write.tableは、でそのようなオブジェクトを作成する必要があります。R

x <- data.frame(sequence1, sequence2)
write.table(x, file = 'test.csv', row.names=FALSE,col.names=FALSE)

?write.table関数の機能の非常に明確な説明については、を参照してください。

@JoshuaUlrichのコメントで述べられているように、これは実際にはR問題ではありません。ディスクへの保存方法が原因で、csvファイルに列を追加することはできません。

于 2012-10-26T00:54:49.837 に答える
3

進行中にファイルを書き込みたい場合(たとえば、ループ内):

seq1<-t(seq(1,20,1))
seq2<-t(seq(21,40,1))

write.table(seq1,"test.csv",sep=",",append=TRUE,row.names=FALSE,col.names=FALSE)
write.table(seq2,"test.csv",sep=",",append=TRUE,row.names=FALSE,col.names=FALSE)

次に、最後にファイルを転置します。一度にすべてを実行したい場合:

test<-t(rbind(seq1,seq2))
write.csv(test, "test.csv")
于 2013-11-20T22:44:13.227 に答える
3

次のコードを確認してください。

seq1 <- seq(1:20)
seq2 <- seq(21:40)
bind <- cbind(seq1,seq2)
write.csv(bind,file = "Your_path", append = TRUE)

このコードは機能します。

于 2015-07-14T06:56:07.453 に答える