2012-12-07 14 views
8

Voglio scrivere la mia matrice risultante in file csv.scrivere nel file csv usando il separatore

ho usato il codice

write.table(result, file ="F:\\filename.csv",row.names=FALSE,sep=",") 

Ma i miei risultati già avere qualche "" valore, in modo che tipo di utilizzo del separatore di scrivere questo tipo di dati.

Ho già usato "separatore" come separatore ma in quel momento non si è diviso come colonna, i valori sono stati inseriti in una singola colonna.

Ho anche provato

ma questa volta il contenuto singola colonna viene Splited nella colonna multipla.

+1

Forse dicci come desideri che i tuoi dati vengano scritti. Di solito, ',' all'interno dei dati non dovrebbe importare in 'write.table', poiché per default le stringhe sono quotate da' ". – Thilo

+2

classicamente nei paesi in cui', 'viene usato come separatore decimale (Francia e Germania per esempio) , i file "csv" sono in realtà separati da punto e virgola (è l'impostazione predefinita su tutti i programmi di fogli di calcolo se si installa la versione specifica di quei paesi). Quindi 'write.table (result, file =" F: \\ filename.csv ", row .names = FALSE, sep = ";") 'sarebbe abbastanza classico. Altrimenti per i file delimitati da tabulazioni l'argomento è' sep = "\ t" '. – plannapus

+0

@plannapus Fai una risposta? – Roland

risposta

16

Nei Paesi in cui viene utilizzato come separatore decimale , (Francia e Germania, ad esempio), i file "csv" sono in realtà separati da punto e virgola (è l'impostazione predefinita su tutti i fogli di calcolo se si installa la versione specifica di tali paesi).
Quindi write.table(result, file ="F:\\filename.csv",row.names=FALSE,sep=";") sarebbe abbastanza classico.
così classico in realtà che v'è un wrapper per esso:

write.csv2(result, file ="F:\\filename.csv",row.names=FALSE) 

write.csv2 uso sep=";" e dec="," come predefinito.

In caso contrario, per un file delimitato da tabulazioni l'argomento è sep="\t".

+1

@Roland, ma non funziona con il mio caso: – user1790894

+0

@ user1790894 puoi mostrare un campione dei tuoi dati usando 'dput',' str' o 'head'? Senza vedere i tuoi dati, davvero non capisco perché e come non funziona . – plannapus

0

Sarei propenso a utilizzare qmethod = "double" e quindi i separatori non interferiscono con il contenuto del campo.

0

È possibile utilizzare qualsiasi delimitatore desiderato, inoltre è possibile utilizzare una stringa come delimitatore. Quindi alcuni esempi non standard potrebbero essere "||" o "|/|". Ciò è particolarmente utile se uno dei campi contiene già altri tipi di delimitatori come ";" "," ":" o "|".

Problemi correlati