如何使用R在csv文件中按列添加数据?

Lay*_*yla 7 csv r append

我有载体中包含的信息,例如:

sequence1<-seq(1:20)
sequence2<-seq(21:40)
...
Run Code Online (Sandbox Code Playgroud)

我想将该数据附加到文件中,所以我使用:

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)
Run Code Online (Sandbox Code Playgroud)

但问题是,这是在一列中添加的,如:

1
2
3
...
21
22
...
40
Run Code Online (Sandbox Code Playgroud)

我想在列中添加该数据,以便它最终如下:

1         21
2         22
3         23
...       ...
20        40
Run Code Online (Sandbox Code Playgroud)

我怎么能用R做到这一点?

小智 9

虽然您无法直接在文件上添加列,但您可以将其读入data.frame,将列附加到列,并将结果写为csv文件:

tmp <- read.csv("original_file.csv")
tmp <- cbind(tmp, new_column)
write.csv(tmp, "modified_file.csv")
Run Code Online (Sandbox Code Playgroud)


mne*_*nel 6

write.table将data.frame或matrix写入文件.如果你想要两个将一个双列data.frame(或矩阵)写入一个文件使用write.table,那么你需要创建这样一个对象R

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

请参阅有关?write.table函数功能的非常清晰的描述.

正如@ JoshuaUlrich的评论所述,这不是一个真正的R问题,由于它存储在磁盘上的方式,你不能将列附加到csv文件.