2012-10-26 4 views
7

Mam informacje, które są zawarte w wektorach, na przykład:Jak dodać dane według kolumn w pliku csv za pomocą R?

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

Chcę dołączyć te dane do pliku, więc używam:

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) 

Ale problemem jest to, że jest to dodany wszystko w jednej kolumnie jak:

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

chcę dodać, że dane w kolumnach tak, że kończy się tak:

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

Jak mogę to zrobić, używając R?

+2

Nie można dołączać kolumn do pliku CSV. Musisz przepisać każdy wiersz za każdym razem, gdy chcesz dodać kolumnę. To nie ma nic wspólnego z R; to sposób przechowywania pliku na dysku. –

Odpowiedz

6

zapisuje element data.frame lub macierz w pliku. Jeśli chcesz napisać dwa data.frame dwukolumnowy (lub macierz) do pliku przy użyciu write.table, to trzeba stworzyć taki obiekt w R

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

Zobacz ?write.table na bardzo jasny opis jakiej funkcji robi.

Jak stwierdzono w komentarzu @ JoshuaUlrich, nie jest to tak naprawdę problem z R, nie można dołączyć kolumny do pliku csv ze względu na sposób, w jaki jest przechowywany na dysku.

7

Chociaż nie można dodać kolumny bezpośrednio na pliku, można go odczytać w data.frame, dołącz do kolumny do niego i zapisać wynik w postaci pliku csv:

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

jeśli chcesz aby zapisać plik jako bieżący (np. w pętli):

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) 

Następnie przetransponuj plik na końcu. Jeśli chcesz zrobić to wszystko naraz:

test<-t(rbind(seq1,seq2)) 
write.csv(test, "test.csv") 
2

Sprawdź na poniższym kodzie

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

to działa Kodeksu.

Powiązane problemy