Afficher la chaîne de caractères unicode dans R

J'ai entré la chaîne de texte dans le fichier
.csv

, qui comprend unicode Symbole comme:
\U00B5

g/dL.
Dans le fichier
.csv

, Et aussi lire dans le cadre des données R:


test=read.csv/"test.csv"/



\U00B5

produira une micro-signe-μ. R le lit au fichier de données comme c'est /
\U00B5

/. Cependant, lorsque j'imprime une chaîne, il est affiché comme
\\U00B5 g/dL

.

De plus, l'entrée de code manuelle fonctionne normalement.


varname <- c/"a", "b", "c"/
labels <- c/"A \U00B5 g/dL", "B \U00B5 g/dL", "C \U00B5 g/dL"/
df <- data.frame/varname, labels/
test <- data.frame/varname, labels/
test
# varname labels
# 1 a A µ g/dL
# 2 b B µ g/dL
# 3 c C µ g/dL


Je me demande comment je pourrais me débarrasser du signe de l'évasion
\

Dans ce cas, et faites-le imprimer un symbole.
Ou, s'il y a une autre façon d'imprimer le symbole dans R.

Merci beaucoup pour cette aide!
Invité:

Dominique

Confirmation de:

Eh bien, d'abord, comprenez que certains personnages de R Doit être blindé si elles sont en dehors des caractères Standard ASCII. Ceci est généralement fait avec le symbole"\". C'est pourquoi vous devez protéger ce symbole lorsque vous écrivez une chaîne dans R:


a <- "\" # error
a <- "\\" # ok.


"\U" - Ceci est un indicateur de sortie spécial. unicode. Veuillez noter que lorsque vous utilisez cette criblage dans la ligne elle-même, il n'y a pas de putain ou de lettres obliques. U. C'est juste un court chemin à un caractère spécifique. Noter:


a <- "\U00B5"
cat/a/
# µ
grep/"U",a/
# integer/0/
nchar/a/
# [1] 1


C'est très différent de la ligne


a <- "\\U00B5"
cat/a/
# \U00B5
grep/"U",a/
# [1] 1
nchar/a/
# [1] 6


Habituellement, lorsque vous importez un fichier texte, vous encodez un symbole qui n'est pas ASCII, Dans tout codage utilisé par le fichier /Le plus commun est UTF-8 ou Latin-1/. Ils ont des octets spéciaux pour représenter ces personnages. N'est pas "normal" Pour un fichier texte pour avoir une séquence d'évacuation ASCII pour unicode Symbole. C'est pourquoi R N'essaie pas de transformer "\U00B5 " en symbole unicode, Parce qu'il suppose que si vous vouliez un symbole unicode, Vous l'utiliseriez directement.

Le moyen le plus simple de réinterroger vos personnages ASCII - Cela utilise le paquet
stringi

. par exemple


library/stringi/
a <- "\\U00B5"
stri_unescape_unicode/gsub/"\\U","\\u",a, fixed=TRUE//


/Le seul accroc est que nous devions convertir "\U" En plus commun "\u", Pour fonctionner correctement l'évasion reconnue/. Vous pouvez le faire avec des données importées en utilisant


test$label <- stri_unescape_unicode/gsub/"\\U","\\u",test$label, fixed=TRUE//

Pour répondre aux questions, connectez-vous ou registre