Ho alcuni dati e sto cercando di caricarlo in R. È in file .csv e posso visualizzare i dati sia in Excel che in OpenOffice. (Se sei curioso, sono i dati dei sondaggi del 2011 tratti dai dati di Elections Canada disponibili here).Problemi di quotazione durante la lettura dei dati in R
I dati sono codificati in modo insolito. Una linea tipica è:
12002,Central Nova","Nova-Centre"," 1","River John",N,N,"",1,299,"Chisholm","","Matthew","Green Party","Parti Vert",N,N,11
C'è un "
sulla fine della Centrale-Nova, ma non all'inizio. Quindi, per leggere i dati, ho soppresso le virgolette, che funzionavano bene per i primi file. vale a dire.
test<-read.csv("pollresults_resultatsbureau11001.csv",header = TRUE,sep=",",fileEncoding="latin1",as.is=TRUE,quote="")
Ora qui è il problema: in un altro file (es. Pollresults_resultatsbureau12002.csv), v'è una riga di dati in questo modo:
12002,Central Nova","Nova-Centre"," 6-1","Pictou, Subd. A",N,N,"",0,168,"Parker","","David K.","NDP-New Democratic Party","NPD-Nouveau Parti democratique",N,N,28
Perché ho bisogno di sopprimere le virgolette, la voce "Pictou, Subd. A"
rende R vuole dividere questo in 2 variabili. I dati non possono essere letti poiché desidera aggiungere una colonna a metà della costruzione del dataframe.
Excel e OpenOffice possono entrambi aprire questi file senza problemi. In qualche modo, Excel e OpenOffice sanno che le virgolette contano solo se si trovano all'inizio di una voce variabile.
Sapete quale opzione devo abilitare su R per ottenere questi dati? Ho> 300 file che ho bisogno di caricare (ognuno con ~ 1000 righe ciascuno) quindi una correzione manuale non è un'opzione ...
Ho cercato dappertutto una soluzione ma non la trovo.
Una sorta di soluzione regex per riparare le virgolette senza corrispondenza è probabilmente un'opzione. Probabilmente ci sono molti modi per farlo, ma una opzione R potrebbe essere quella di usare 'readLines', sostituire", [letters or spaces] "" con una versione fissa usando i riferimenti posteriori, respingere usando 'writeLines' ...? – joran
un altro pensiero, se i 300 + file sono tutti dello stesso formato, sarebbe quello di ottenere loro concatenati in modo da poter operare su un file – kpierce8
Si dice "per sopprimere le virgolette, la voce" Pictou, Sottodistretto A "rende R vuole dividi questo in 2 variabili ", si divide perché hai una virgola come separatore – agstudy