Je lisais dans un fichier csv.
Le code est:
mydata = read.csv("mycsv.csv", header=True, sep=",", quote="\"")
Recevez l'avertissement suivant:
Message d'avertissement: Dans
scan(file = file, what = what, sep = sep, quote = quote, dec = dec
,: nul (s) intégré (s) trouvé (s) en entrée
Maintenant, certaines cellules de mon CSV ont des valeurs manquantes représentées par "".
Comment puis-je écrire ce code pour ne pas recevoir l'avertissement ci-dessus?
Votre fichier CSV est peut-être codé en UTF-16. Ce n'est pas rare lorsque vous travaillez avec des outils Windows.
Vous pouvez essayer de charger un fichier CSV UTF-16 comme ceci:
read.csv("mycsv.csv", ..., fileEncoding="UTF-16LE")
Vous pouvez essayer d'utiliser l'option skipNul = TRUE
.
mydata = read.csv("mycsv.csv", quote = "\"", skipNul = TRUE)
De ?read.csv
Les nuls incorporés dans le flux d'entrée mettront fin au champ en cours de lecture, avec un avertissement une fois par appel à analyser. Si vous définissez
skipNul = TRUE
, ils sont ignorés.
Cela a fonctionné pour moi.
Peut-être un fichier sans CRLF, peut-être uniquement en LF. Essayez de vérifier la sortie HEX du fichier.
Si c'est le cas. Essayez de lancer le fichier avec awk:
awk '{printf "%s\r\n", $0}' file > new_log_file
J'avais le même message d'erreur et compris que, bien que mes fichiers aient une extension .csv et s'ouvraient sans problème dans un tableur, ils étaient en fait enregistrés sous le format "Tous les formats" plutôt que "Texte CSV (.csv)"
Dans ces cas, assurez-vous que les données que vous importez ne comportent pas de caractère "#", mais si c'est le cas, utilisez l'option comment.char=""
. Cela a fonctionné pour moi.
Cela n'a rien à voir avec l'encodage. C'est le problème avec la lecture des NULL dans le fichier. Pour gérer cela, vous devez passer le paramètre "skipNul = TRUE".
par exemple: neg = scan ('F: /Natural_Language_Processing/negative-words.txt', what = 'character', comment.char = '', encoding = "UTF-8", skipNul = TRUE)