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

时间:2012-10-26 00:51:11

标签: r csv append

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

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
2
3
...
21
22
...
40

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

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

我如何使用R?

来做到这一点

4 个答案:

答案 0 :(得分:9)

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

tmp <- read.csv("original_file.csv")
tmp <- cbind(tmp, new_column)
write.csv(tmp, "modified_file.csv")

答案 1 :(得分:6)

write.table将data.frame或matrix写入文件。如果您希望两个使用write.table将两列data.frame(或矩阵)写入文件,则需要在R

中创建此类对象
x <- data.frame(sequence1, sequence2)
write.table(x, file = 'test.csv', row.names=FALSE,col.names=FALSE)

有关该功能的详细说明,请参阅?write.table

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

答案 2 :(得分:2)

如果你想要编写文件(例如循环):

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")

答案 3 :(得分:2)

检查以下代码,

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

本守则有效。