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

时间:2019-03-08 10:22:47

标签: r ascii whitespace utf

我正在处理一些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空格,只有其中一个已转换为这个神秘字符)。发生了什么事?

1 个答案:

答案 0 :(得分:0)

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

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