我有一个数据框,我需要在R Studio中可视化,并且对于两列信息(显示原点和目的地的名称),一些字符是这样的:
St.P<U+00BA>lten
对于像
这样的不同词语会发生这种情况W<U+00BA>rgl, V<U+00BA>cklabruck
这只发生在数据框的那两列
中如何删除这些字母或替换它们?我觉得需要搜索那些特定的字符串
<U+00BA>
在两列中,并在找到它们时替换它们,你们知道一些代码可以帮助我实现这个目标吗?
谢谢!
答案 0 :(得分:0)
如果我将问题中的文字视为字符串的文字内容,我可以使用以下方法将它们变回Unicode字符:
library(stringr)
x = c("W<U+00BA>rgl", "V<U+00BA>cklabruck")
unicode_chars = str_match(x, "<U\\+([a-zA-Z0-9]+)>")
str_replace(x, "<U\\+[a-zA-Z0-9]+>", paste0("\\u", unicode_chars[, 2]))
# Output:
[1] "Wºrgl" "Vºcklabruck"
但也许你的字符串已经存储为Unicode,这是系统显示它们的问题,在这种情况下这无济于事。
答案 1 :(得分:0)
我猜你用R以外的其他程序向我们展示了显示器。如果你在R控制台上查看?Syntax
,你会看到在转义后使用Unicode字符,例如"\u00BA"
。该字符实际上并不是一个可变的小写字母o,但也许该数据源的作者使用的是不同的字符集。因此,您可以将Vöcklabruck"
的奇怪拼写与此正则表达式逻辑测试相匹配
grepl( "V\\u00BAcklabruck" , R_reference_to_your_column)
对于您提到的所有示例,这应该是TRUE
。
源代码中的“真实”小写umlaut-o是R的符号“\ u00E4”,所以我怀疑你真的想要这样做:
your_dfrm$yourcol <- gsub( "\\u00BA", "\u00E4", your_dfrm$yourcol)
这些天的大多数系统都设置为显示“变形字符”,即带有元音的分音符。