Importo tabelle xlsx
2007 in R 3.2.1patched
utilizzando il pacchetto readxl 0.1.0
in Windows 7 64
. La dimensione delle tabelle è dell'ordine di 25.000 righe per 200 colonne.Specificazione dei tipi di colonna durante l'importazione di dati xlsx in R con pacchetto readxl
Funzione read_excel()
funziona a meraviglia. Il mio unico problema è con l'assegnazione della classe di colonna (tipo di dati) alle colonne scarsamente popolate. Ad esempio, una data colonna può essere NA per 20.000 righe e quindi prenderà un valore di carattere sulla riga 20.001. read_excel()
appare come predefinito per il tipo di colonna numerico quando si esegue la scansione delle prime n righe di una colonna e si trova solo NAs
. I dati che causano il problema sono caratteri in una colonna assegnata numerica. Quando viene raggiunto il limite di errore, l'esecuzione si ferma. In realtà voglio i dati nelle colonne sparse, quindi impostare il limite di errore più alto non è una soluzione.
Posso identificare le colonne problematiche rivedendo gli avvisi lanciati. E read_excel()
ha un'opzione per affermare tipo di dati di una colonna impostando argomento col_types
Secondo la documentazione del pacchetto:
O NULL
a intuire dal foglio di calcolo o un vettore di caratteri contenente blank
, numeric
, date
o text
.
Ma questo significa che devo costruire un vettore di lunghezza 200 popolata in quasi ogni posizione con blank
e text
in poche posizioni corrispondenti alle colonne offendere?
Probabilmente c'è un modo per farlo in un paio di linee del codice R
. Crea un vettore della lunghezza richiesta e riempilo con blank
s. Forse un altro vettore contenente i numeri delle colonne deve essere forzato a text
, e poi ... O forse è possibile chiamare per read_excel()
solo le colonne per le quali le sue ipotesi non sono quelle desiderate.
Apprezzerei qualsiasi suggerimento.
Grazie in anticipo.
In alcuni casi è utile poter controllare il numero di righe scansionate per determinare il tipo di dati. In questo problema, tuttavia, potrebbe essere necessario eseguire la scansione di cols molto scarsamente popolati. Penso che il problema principale sia un modo conveniente per specificare il tipo di dati desiderato di alcune colonne in cui il comportamento predefinito non è voluto. Nella sua risposta a http://stackoverflow.com/q/6099243 Mikko sembra suggerire un modo per farlo per read.xlsx2 nel pacchetto xlsx. Forse lavori simili per readxl. Grazie mille per aver controllato l'origine di readxl_xlsx_col_types. – jackw19