Как добавить данные по столбцам в csv-файл с помощью R?
у меня есть информация, которая содержится в векторах, например:
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 ответов
write.table
записывает данные.фрейм или матрица в файл. Если вы хотите два, напишите данные из двух столбцов.кадр (или матрица) в файл с помощью 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 из-за того, как он хранится на диске.
хотя вы не можете добавить столбец непосредственно в файл, вы можете прочитать его в данные.кадр, добавьте к нему столбец и запишите результат в виде csv-файла:
tmp <- read.csv("original_file.csv")
tmp <- cbind(tmp, new_column)
write.csv(tmp, "modified_file.csv")
Если вы хотите записать файл, как вы идете (в цикле, например):
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")
проверить следующий код
seq1 <- seq(1:20)
seq2 <- seq(21:40)
bind <- cbind(seq1,seq2)
write.csv(bind,file = "Your_path", append = TRUE)
Этот Код Работает.