Windows 上的 RStudio 无法在数据框中使用 UTF-8 符号(大约等于 ≈)

RStudio on Windows can't use UTF-8 symbol (approx equal ≈) in data frame

提问人:CAWA 提问时间:2/24/2023 最后编辑:Gregor ThomasCAWA 更新时间:8/24/2023 访问量:79

问:

我正在尝试向数据框添加“≈”。

您可以向数据框添加“+”和“-”等符号。 您≈甚至可以使用

text(x,y, expression(""%~~%"")) 

但这在数据框中不起作用,我找不到一种方法来做到这一点。 我试过使用 paste(“≈”) 和其他一些同样微弱的东西粘贴≈。 例如:

x <- "≈"
print(x)

[1] “ ̃”

这是一个小例子。我希望看到的唯一区别是中间的两行变得≈

df<-data.frame(prop=c(0.99, 0.97, 0.5,0.4,0.01, 0.02), symbol=NA)

df$symbol<-ifelse(df$prop>=0.95, "+","")
df$symbol<-ifelse(df$prop<=0.05, "-",df$symbol)
df$symbol<-ifelse(df$prop<=0.95 & df$prop>=0.05, "approximately equal symbol here",df$symbol)

df`

看来

 prop                          symbol
1 0.99                               +
2 0.97                               +
3 0.50 approximately equal symbol here
4 0.40 approximately equal symbol here
5 0.01                               -
6 0.02                               -                              -

我想要什么

 prop       symbol
1 0.99        +
2 0.97        +
3 0.50        ≈
4 0.40        ≈
5 0.01        -
6 0.02        -  
R 文本 UTF-8 RStudio

评论

3赞 Gregor Thomas 2/24/2023
data.frame(x = "≈")对我有用。有什么理由需要使用吗?expression()
0赞 CAWA 2/24/2023
我不需要使用 expression(),但是当我输入“data.frame(x = ”≈“)”时,我得到> data.frame(x = “≈”) x ̃
1赞 Gregor Thomas 2/24/2023
嗯。这可能是编辑器/操作系统问题。RStudio 应该在代码中原生支持 UTF-8。如果您使用的是其他编辑器,则可能需要配置设置。如果您在 Windows 上,您可能还需要确保文件以 UTF-8 编码保存。您使用的是什么编辑器和操作系统?
1赞 JosefZ 2/24/2023
你面临一个 mojibake 案例(在 Python 中的例子,因为它的普遍可理解性):返回 .换言之:(U+2248,几乎等于)具有任意一种编码,同时具有相同的代码,(U+02DC,小波浪号)具有相同的编码。切换到(在 R for Windows 中,使用 wthenh codepage ...)'≈'.encode( 'cp437').decode ('mac-roman')˜0xf7['cp437', 'cp720', 'cp737', 'cp860', 'cp861', 'cp862', 'cp863', 'cp865']˜['mac-croatian', 'mac-romanian', 'mac_iceland', 'mac_roman', 'mac_turkish']UTF-8Sys.setlocale.65001
1赞 JosefZ 2/24/2023
Sys.setlocale(locale='.utf8')Sys.setlocale(locale='.65001')

答:

0赞 CAWA 8/24/2023 #1

根据评论

Sys.setlocale(locale='.utf8') 或 Sys.setlocale(locale='.65001')