J'essaie de lire une liste de fichiers csv. Ces fichiers CSV ont ";" en tant que séparateur . Après avoir omis de lire les fichiers csv, j’ai essayé de couper le contenu de l’un des fichiers csv en plusieurs parties et de lire les valeurs de chaque partie pour voir la cause du problème.
Cette méthode a fonctionné pour moi et j'ai trouvé un code fonctionnel qui fonctionne pour mes données:
y <- data.table(read.table(filenames[i], header = FALSE, sep = ";",
comment.char = "", fill = TRUE, check.names = FALSE,
blank.lines.skip = TRUE))
Mais j'ai rencontré un autre problème. Lorsque je copie et colle les données d'origine dans un fichier csv et exécute le code, cela fonctionne parfaitement. Cependant, lorsque j'essaie d'exécuter le même code sur le fichier csv d'origine, cela me donne l'avertissement 'embedded nulls'.
À l'extérieur, les données d'origine et les données copiées ont exactement la même apparence et sont toutes enregistrées au format csv. Par conséquent, il m'est difficile de trouver ce qui cause exactement l'avertissement et quelle est la différence entre mon fichier CSV d'origine et le fichier CSV copié.
Les données ressemblent à celles ci-dessous:
Measurement Reports export file;
;
Comment;Time ;E_MW;E_PF;INV11_ACKW;INV12_ACKW;INV21_ACKW;INV22_ACKW;INV31_ACKW;INV32_ACKW;INV41_ACKW;INV42_ACKW;INV51_ACKW;INV52_ACKW;INV61_ACKW;INV62_ACKW;M1_ATEMP;M1_HUMID;M1_PYRA1S;M1_PYRA2S;M1_PYRA3S;M1_WDIREC;M1_WSPEED;
;
;00:00;-0.02 ;-0.36 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;22.32 ;82.32 ;0.00 ;0.00 ;0.00 ;234.83 ;0.00 ;
;00:01;-0.02 ;-0.36 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;22.26 ;82.57 ;0.00 ;0.00 ;0.00 ;214.93 ;0.00 ;
;
;Sum;-1.41 ;-22.10 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;1330.89 ;5098.24 ;0.00 ;0.00 ;0.00 ;11246.06 ;28.48 ;
;Mean;-0.02 ;-0.37 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;0.00 ;22.18 ;84.97 ;0.00 ;0.00 ;0.00 ;187.43 ;0.47 ;
;
Toute aide serait appréciée. Je vous remercie.
La solution, telle que publiée dans un commentaire de @G. Grothendieck, utilisait l'argument fileEncoding=
pour spécifier le codage correct, qui s'est révélé être UTF16LE ou UCS-2LE conformément au PO.
Ecrire ceci comme une réponse pour ne pas perdre de vue les commentaires.
J'ai rencontré un problème similaire récemment où j'ai reçu un message d'erreur comme:
1: Dans read.table (fichier = fichier, en-tête = en-tête, sep = sep, devis = citation,: la ligne 3 semble contenir des valeurs null incorporées.
J'ai essayé de réinitialiser le paramètre fileEncoding mais je n'ai pas réussi à supprimer les avertissements. Heureusement, je suis tombé sur l'argument SkipNul mentionné dans ce lien - link et je l'ai réglé sur T pour moi.
Je suis d'accord avec les autres utilisateurs pour dire que l'argument fileEncoding peut aider. Assurez-vous également de vérifier que la fonction et le type de fichier sont corrects. J'ai rencontré cette erreur en essayant par erreur d'utiliser read.csv()
pour charger un fichier Excel (l'erreur a été résolue rapidement lorsque je suis passé à read.xlsx()
).