Erreur dans tolower () chaîne multi-octets non valide
C'est l'erreur que je reçois lorsque j'essaie d'exécuter tolower()
sur un caractère de vecteur à partir d'un fichier qui ne peut pas être changé (au moins, pas manuellement trop grand).
Error in tolower(m) : invalid multibyte string X
Il semble être en français les noms de société que sont le problème avec le É
caractère. Bien que je n'ai pas étudié tous (pas possible de le faire manuellement).
C'est étrange, parce que je pensais que les problèmes d'encodage aurait été identifiés au cours de read.csv()
plutôt que pendant les opérations après le fait.
Est-il un moyen rapide pour enlever ces chaînes de caractères multi-octets? Ou, peut-être un moyen de les identifier et de les convertir? Ou même tout simplement les ignorer totalement?
source d'informationauteur Brandon Bertelsen | 2012-11-02
Vous devez vous connecter pour publier un commentaire.
Voici comment j'ai résolu mon problème:
Tout d'abord, j'ai ouvert les données brutes dans un texteditor (Geany, dans ce cas), clique sur propriétés et identifié le type de Codage.
Après que j'ai utilisé le
iconv()
fonction.Pour être plus précis, j'ai fait cela pour chaque colonne de la
data.frame
de la CSV importé. Important de noter que j'ai misstringsAsFactors=FALSE
dans monread.csv()
appel.Je sais que cela a été déjà répondu, mais j'ai pensé partager ma solution à ce que j'ai vécu la même chose.
Dans mon cas, j'ai utilisé la fonction
str_trim()
de colisstringr
pour découper les espaces de début et de fin de chaîne.com$uppervar<-toupper(str_trim(com$var))