2013-06-14 17 views
13

Breve e dolce: come posso esportare TSV/CSV da R?Come esportare correttamente TSV?

write.table/write.csvquasi opere:

test <- data.frame(a = 2 : 4, b = 3 : 5) 
write.table(test, file='test.tsv', quote=FALSE, sep='\t') 
$ more test.tsv 
a b 
1 2 3 
2 3 4 
3 4 5 

... ma produce un formato che è diverso da quello che ci si aspetta dalla maggior parte degli altri programmi:

a b 
1 2 3 
2 3 4 
3 4 5 

- notare il diverso trattamento della riga di intestazione.

Come è possibile esportare il secondo anziché il primo formato? La specifica manuale di col.names come c('', colnames(test)) non funziona - R si lamenta di un argomento non valido.

+0

direi che non c'è nessun definizione di "corretta" per CSV o TSV file, solo un mucchio di diverse convenzioni. – Spacedman

+0

@Spacedman Sono d'accordo, quindi il mio chiarimento nella domanda "cosa è previsto dalla maggior parte degli altri programmi". –

risposta

22

È possibile utilizzare col.names = NA:

write.table(test, file='test.tsv', quote=FALSE, sep='\t', col.names = NA) 
+3

Oh questo è intuitivo. –

+0

@KonradRudolph Sono d'accordo che questo è uno di quei "trucchi" debolmente documentati. Il lato positivo, una volta che l'hai imparato, non si dimentica mai :-) –

+5

@Carl Nonostante la tua promessa, l'ho dimenticato di nuovo. : -/ –