2013-08-29 18 views
13

Ho una domanda sul salvataggio dei frame di dati in formato txt o excel. Ho un frame di dati in R, ma quando salvo che:Come salvare un frame di dati in un file txt o excel separato da colonne

  1. Prima usando write.table() funzione quando apro il frame di dati salvati, ad esempio in Excel, tutte le colonne sono raggruppate in una colonna e si deve séparé le colonne Excel con un rischio di perdere dati. Lo stesso accade con la funzione write.csv().

È possibile salvare in R un frame di dati con tutte le colonne separate. Grazie.

+1

Mostrare i dati di esempio che si desidera 'scrivere'. – Metrics

+0

e aprire anche il file scritto utilizzando il blocco note e controllare. È separato da virgole? scheda? punto e virgola? – Nishanth

+0

Hai provato 'write.csv2'? – Roland

risposta

1

Si dovrebbe essere in grado di farlo con write.csv().

Questo è un esempio che funziona sulla mia macchina. Creo un data.frame, lo salvo con write.csv e lo apro in Excel senza problemi.

a <- 1:5 
b <- 6:10 
c <- 11:15 

df <- data.frame(a,b,c) 

write.csv(df, 'test2.csv') 
1

È possibile che il file che si sta salvando sia a posto, lo si sta caricando in Excel in modo errato (difficile conoscerlo con certezza, senza esempio). Quando si importa in Excel ci sono modi per specificare cosa sia il separatore e altre opzioni. È inoltre possibile semplificare il processo impostando alcune opzioni in write.table. Controlla anche le tue impostazioni regionali, il separatore predefinito potrebbe essere diverso a seconda che il tuo computer pensi che sia in Europa (o in alcuni paesi) o negli Stati Uniti (o in altri paesi), potrebbe essere che la tua versione di R e la tua versione di Excel non sei d'accordo su quale regione (e quindi su quale separatore utilizzare).

Si potrebbe anche voler guardare il pacchetto XLConnect che creerà i file excel direttamente senza dover passare attraverso un file di testo. (ci sono un paio di altri pacchetti che scriveranno anche su file Excel, ma XLConnect è quello con cui ho avuto la migliore esperienza).

Un'altra opzione per trasferire rapidamente un frame di dati o matrice di eccellere (almeno su Windows, non so se questo funziona su altri OS) è quello di utilizzare tabella di scrittura con file="clipboard" e sep="\t", quindi nella finestra di Excel fare clic su una cella , quindi fai "Incolla" e i dati saranno in Excel tramite gli Appunti piuttosto che un file.

2

Il delimitatore predefinito per write.table è un singolo spazio. Mentre .txt viene spesso utilizzato per indicare un foglio di calcolo, tutto ciò che indica in realtà è che si tratta di un file di testo. Se quello che vuoi è un .tsv, o un file con valori separati da tab, allora puoi provare write.table(x,sep="\t"). Questa scheda delimiterà il tuo file, ed excel dovrebbe riprenderlo quando proverai ad aprire il file. Consiglio vivamente di dare una buona lettura allo ?write.table (e allo ?read.table mentre ci siamo). Perché davvero, anche se il tuo codice è perfetto, se leggi o scrivi i tuoi dati in modo improprio, qual è il punto?

7

Il mio modo preferito per raggiungere questo obiettivo (da quando ho spesso bisogno di condividere i frame di dati trattati in R con utenti non-R ed è conveniente per loro basta fare doppio clic e farlo aprire bene in Excel) è:

Come accennato in precedenza, la scheda argomento sep="\t" delimita il file, ma penso che sia anche utile rimuovere i nomi di riga a meno che non sia necessario.

0

Utilizzare sotto

installazione.pacchetti (openxlsx) libreria (openxlsx)

write.xlsx (dataframe, "C: /Users/santoshr/Desktop/export10.xlsx", sheetname = "Sheet1", col.names = TRUE, SHOWNA = FALSE)

Problemi correlati