R:为什么外部生成的字符串中的“空格”字符具有ASCII值“NA”?

问题描述 投票:0回答:1

我正在使用一些SurveyMonkey响应数据,我从.xlsx文件导入。

沿着这些方向发生了一些事情:

> unique(responseColumn)
[1] "This string"
[2] "Something else"

>(responseColumn == unique(responseColumn)[1])
[1] 25

>sum(responseColumn == "This string")
[1] 0

>unique(responseColumn)[1]
[1] "This string"

>unique(responseColumn)[1] == "This string"
[1] FALSE

显然这令人困惑。我玩了一会儿,发现我可以使用

writeClipboard(unique(responseColumn)[1])

捕获有问题的字符串并将其粘贴到我的代码中。

在控制台中,它看起来完全一样:“这个字符串”。

但是,在我的脚本编辑窗口中,它显示为:

enter image description here

我将红点复制到剪贴板并进行了一些测试:

>readClipboard()
[1] " "

>readClipboard() == " "
[1] FALSE

>utf8toInt(" ")
[1] 32

>utf8toInt(readClipboard())
[1] NA

这个神秘人物是什么?我编写了Survey Monkey问题并明确记住在指定此选项时在键盘上点击“空格”。响应中的其他空间保持不变(事实上,所讨论的响应实际上有多个空格IRL,其中只有一个空间被转换为这个mysteryChar)。这是怎么回事?

r ascii whitespace utf
1个回答
0
投票

我的猜测是“红色”点只是一些非ASCII,可能是UTF-8字符。你无法在R控制台中看到它并不意味着它仍然没有在Windows剪贴板中逻辑上存在。这可能只是意味着R控制台没有正确显示UTF-8字符。

如果您的R工具未正确显示字符,请考虑将其配置为支持UTF-8。

© www.soinside.com 2019 - 2024. All rights reserved.