Si può o non può anche vedere un problema con i nomi di riga sono identici, come write.table
non consente nomi di riga identici quando si aggiunge. Potresti provare. Nella prima scrittura su file, prova solo con write.table
con row.names = FALSE
. Poi, a partire dal secondo in scrittura al file, utilizzare sia col.names = FALSE
e row.names = FALSE
Ecco la prima scrittura di file
> d1 <- data.frame(A = 1:5, B = 1:5) ## example data
> write.table(d1, "file.txt", row.names = FALSE)
Siamo in grado di controllare con read.table("file.txt", header = TRUE)
. Poi possiamo aggiungere lo stesso frame di dati a tale file con
> write.table(d1, "file.txt", row.names = FALSE,
col.names = FALSE, append = TRUE)
E di nuovo siamo in grado di controllare con read.table("file.txt", header = TRUE)
Quindi, se si dispone di un elenco di frame di dati, dire dlst
, il codice pezzo che aggiunge i frame di dati insieme potrebbe apparire qualcosa di simile
> dlst <- rep(list(d1), 3) ## list of example data
> write.table(dlst[1], "file.txt", row.names = FALSE)
> invisible(lapply(dlst[-1], write.table, "file.txt", row.names = FALSE,
col.names = FALSE, append = TRUE))
Ma, come suggerisce @MrFlick, sarebbe molto meglio aggiungere i frame di dati in R, e poi inviarli a file una volta. Ciò eliminerebbe molti possibili errori/problemi che potrebbero verificarsi durante la scrittura su file. Se i dati sono in un elenco, che potrebbe essere fatto con
> dc <- do.call(rbind, dlst)
> write.table(dc, "file.txt")
non testati, ma si potrebbe fare 'col.names = ifelse (ii% in% 1, TRUE, FALSE)' dove ii è l'iterazione del ciclo – rawr
Non credo che sia così comune come si pensa. Normalmente si costruisce prima l'intero data.frame e poi lo si scrive una volta. – MrFlick