【问题标题】:R: Why does the 'space' character in an externally generated string have ASCII value 'NA'?R:为什么外部生成的字符串中的“空格”字符具有 ASCII 值“NA”?
【发布时间】:2019-07-30 08:44:02
【问题描述】:

我正在处理一些从 .xlsx 文件导入的 SurveyMonkey 响应数据。

类似的事情正在发生:

> 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])

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

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

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

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

>readClipboard()
[1] " "

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

>utf8toInt(" ")
[1] 32

>utf8toInt(readClipboard())
[1] NA

这个神秘人物是什么?我写了调查猴子问题,并清楚地记得在指定此选项时在键盘上按了“空格”。响应中的其他空格保持原样(事实上,有问题的响应实际上有多个空格 IRL,其中只有一个已转换为这个神秘字符)。怎么回事?

【问题讨论】:

  • 除了标准空格之外,还有大量的空格字符。我们不能说它是哪一个,但你可能应该清理你的输入。

标签: r ascii whitespace utf


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 2018-05-30
    • 1970-01-01
    • 2015-02-14
    相关资源
    最近更新 更多