繁体   English   中英

我正在尝试在gsub函数中使用as.character()将R中的“ alpha”替换为符号“α”

[英]I'm trying to use as.character() in gsub function to replace “alpha” with the symbol 'α' in R

    if((grep("alpha",userinput,fixed = TRUE))){
        userinput<- gsub("alpha|Alpha",as.character("\U03B1"),userinput)
      }

这将打印“α”而不是“α”。 并使用

userinput<- gsub("alpha|Alpha","α",userinput)

打印“ a”。 我该怎么做才能得到“α”。

我也可以看到gsub问题。 另一种解决方案是使用stringr::str_replace因为它对我stringr::str_replace

library(stringr)

str_replace("My name is alpha", pattern = "alpha|Alpha", as.character("\U03B1"))

#[1] "My name is α"

str_replace("My name is Alpha", pattern = "alpha|Alpha", as.character("\U03B1"))
#[1] "My name is α"

如果您手动设置编码,它将起作用:

userinput <- "mm is such an alpha male !!!"
x <- gsub("alpha|Alpha","\u03B1",userinput)
x
# [1] "mm is such an α male !!!"
Encoding(x) <- "UTF-8"
x
# [1] "mm is such an α male !!!"

您可能会认为在userinput上设置编码就足够了,但事实并非如此, gsub没有尊重。

在处理编码地狱时,请在每一步控制每个输入和变量的编码,并且不要信任任何人。 即使使用出色的文本挖掘程序包,我个人也遇到了可怕的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM