Oggi ho finalmente deciso di iniziare a scalare la curva di apprendimento ripida di R. Ho trascorso alcune ore e sono riuscito a importare il mio set di dati e fare alcune altre cose di base, ma ho problemi con il tipo di dati: una colonna che contiene i decimali viene importata come numero intero e la conversione per raddoppiare i valori .Problemi di importazione del file csv/conversione da numero intero a raddoppio in R
nel tentativo di ottenere un piccolo file CSV per mettere qui come esempio ho scoperto che il problema si verifica solo quando il file di dati è troppo grande (il mio file originale è una matrice 1.048.418 del 12, ma anche con "solo "5000 righe Ho lo stesso problema: quando ho solo 100, 1000 o addirittura 2000 righe, la colonna viene importata correttamente come doppia).
Here è un dataset più piccolo (ancora 500kb, ma ancora una volta, se il set di dati è piccolo il problema non viene replicato). Il codice è
> ex <- read.csv("exampleshort.csv",header=TRUE)
> typeof(ex$RET)
[1] "integer"
Perché la colonna dei rendimenti viene importato come intero quando il file è grande, quando è chiaramente di tipo double?
La cosa peggiore è che se provo a convertirlo in doppio, i valori vengono modificati
> exdouble <- as.double(ex$RET)
> typeof(exdouble)
[1] "double"
> ex$RET[1:5]
[1] 0.005587 -0.005556 -0.005587 0.005618 -0.001862
2077 Levels: -0.000413 -0.000532 -0.001082 -0.001199 -0.0012 -0.001285 -0.001337 -0.001351 -0.001357 -0.001481 -0.001486 -0.001488 ... 0.309524
> exdouble[1:5]
[1] 1305 321 322 1307 41
Questo non è l'unica colonna che viene importato sbagliato, ma ho pensato che se trovo una soluzione per una colonna, dovrei essere in grado di ordinare gli altri. Ecco qualche informazione in più:
> sapply(ex,class)
PERMNO DATE COMNAM SICCD PRC RET RETX SHROUT VWRETD VWRETX EWRETD EWRETX
"integer" "integer" "factor" "integer" "factor" "factor" "factor" "integer" "numeric" "numeric" "numeric" "numeric"
Essi dovrebbero essere in questo ordine: intero, la data, stringa, intero, doppie, matrimoniali, doppie, intero, doppie, matrimoniali, doppie, matrimoniali (i tipi sono probabilmente sbagliato, ma si spera che otterrete ciò che intendo)
@Xu Wang: la prima metà non funzionerà.Riducendolo alle prime 5 mila osservazioni, meno dell'1% dei miei dati, crea già problemi ... – Vivi
scusa se non ho finito il mio commento perché sono andato a leggere l'aiuto 'read.csv'. Quello che volevo dire era che pensavo che forse c'erano alcuni strani valori che confondevano 'R'. Quindi ho pensato che non fosse il fatto di grandi o piccoli, ma piuttosto che il set di dati di grandi dimensioni ha uno di quei personaggi o valori confusi. Ha senso? In caso contrario, non importa. Penso che la soluzione sia usare l'argomento colClasses. –
@Xu Wang Capisco cosa stai dicendo, ma non sono ancora abbastanza sicuro di come risolvere il mio problema. Come si usa l'argomento colClasses? Sareste in grado di darmi il comando di una riga per importare correttamente questo file usando l'argomento colClasses? – Vivi