2013-01-10 13 views
46

Quando si lavora con dati (ad esempio, nel data.frame) l'utente può controllare la visualizzazione cifre utilizzandoCome controllare il numero di cifre decimali nell'output write.table()?

options(digits=3) 

ed elenca il data.frame simili.

ttf.all 

Quando l'utente ha bisogno di incollare i dati in Excel come questo

write.table(ttf.all, 'clipboard', sep='\t',row.names=F) 

Il parametro cifre viene ignorato e numeri non sono arrotondati.

vedere bel uscita

> ttf.all 
    year V1.x.x V1.y.x ratio1 V1.x.y V1.y.y ratioR V1.x.x V1.y.x ratioAL V1.x.y V1.y.y ratioRL 
1 2006 227 645 35.2  67 645 10.4 150 645 23.3  53 645 8.22 
2 2007 639 1645 38.8 292 1645 17.8 384 1645 23.3 137 1645 8.33 
3 2008 1531 3150 48.6 982 3150 31.2 755 3150 24.0 235 3150 7.46 
4 2009 1625 3467 46.9 1026 3467 29.6 779 3467 22.5 222 3467 6.40 

Ma ciò che è in Excel (appunti) non viene arrotondato. Come controllare in write.table()?

+10

Utilizzare 'round()' ... – Andrie

+2

se ho capito bene, round() dovrebbe essere applicato su un set di colonne e dovrei enumerare quelli. Le cifre = 3 è globale e non richiede l'enumerazione delle colonne. così round() non è una soluzione perfetta. – userJT

risposta

45

È possibile utilizzare la funzione format() come in:

write.table(format(ttf.all, digits=2), 'clipboard', sep='\t',row.names=F) 

format() è una funzione generica che ha metodi per molte classi, tra cui data.frames. A differenza di round(), non genera un errore se il tuo dataframe non è tutto numerico. Per ulteriori dettagli sulle opzioni di formattazione, vedere il file della guida tramite ?format

+3

Quando uso sia 'digit = 2' che' scientific = F', l'impostazione delle cifre viene ignorata. Funziona benissimo se permetto la scienza. Qualche idea? – jzadra

+0

Caro @jzadra nel mio caso, avendo un dataframe di numeri scientifici lunghi mescolati con numeri più piccoli, ho usato queste opzioni per vedere correttamente nei numeri R, così come per salvare correttamente i dati nel file csv, come li vedo in R: 'opzione R generale: opzioni (scipen = 1, cifre = 8) e per write.table (formato (data_table, cifre = 4, scientifico = F)' –

+0

In qualche modo, impostando in generale l'ambiente R il numero di decimali cifre da visualizzare, è passato in comando tabella di scrittura, numeri risultanti senza numeri decimali! Pertanto, è necessario aumentare le cifre decimali in write.table relativamente. –

Problemi correlati