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
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.table将 data.frame 或矩阵写入文件。如果您想要两个使用 将两列 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 回答