2017-05-18 3 views
0

j'ai un fichier .csv qui contient une telle situation (espaces supplémentaires ajoutés pour faciliter la lecture):R read.table virgule à l'intérieur échappé citations à l'intérieur chaîne

1, 3 , "string" , "string4"  , NA 
2, 5 , "string" , "s\"tring\"4" , 3 
1, 3 , "string" , "stri,ng4"  , 5 
8, 7 , "string" , "st\"ri,n\"g4" , 5 

Je lis cela en rstudio sur un ordinateur Windows 10 la machine, en utilisant la déclaration suivante:

read.table("file_name.csv",fill=TRUE, header=FALSE, quote="\"", sep=",", encoding="UTF-8") 

la réponse suivante:

V1 V2  V3   V4  V5 V6 
1 1 3 string  string4 <NA> NA 
2 2 5 string s\\tring\\4  3 NA 
3 1 3 string  stri,ng4  5 NA 
4 8 7 string  st\\ri n\\g4 5 

Le problème semble être que la virgule dans les guillemets échappés dans la rangée 5, il est interprété comme un séparateur.

Je m'attends/cherche quelque chose comme suivre, mais je ne suis pas sûr de savoir comment l'obtenir.

V1 V2  V3   V4 V5 
1 1 3 string  string4 <NA> 
2 2 5 string s\"tring\"4  3 
3 1 3 string  stri,ng4  5 
4 8 7 string st\"ri,n\"g4  5 

Je considère le retraitement du fichier en utilisant grep changer \ » pour », mais je suis curieux de savoir s'il y a une méthode plus directe. Il semble comme une question potentiellement commune, mais je ne peux pas trouver un bon . par exemple une solution

pensées, tout le monde

+0

sortie désirée trouvé ce fil:.. [link] (http://stackoverflow.com/questions/32103639/read-csv-file-in-r-with-double-quotes) La suggestion de 'fread' de' data.library' a fait l'affaire. –

+0

Cool! Juste pour des raisons d'information, fread est de data.table, pas data.library –

Répondre

0

Essayez d'utiliser read.table ("file_name.csv") Il m'a donné l'

+0

Ceci n'a pas produit les résultats désirés. –

+0

Etrange, ça marche pour moi ... peut-être parce que j'essaie sur Unix et pas sur windows avec Rstudio ... Quels résultats cela vous a-t-il donné? –