【发布时间】:2017-07-12 07:01:55
【问题描述】:
编辑:感谢 R Yoda,我终于能够针对我面临的问题创建一个可重现的示例:
x = rawToChar(as.raw(c(0xa0, 0x31, 0x31, 0x2e, 0x31, 0x33, 0x32, 0x35, 0x39, 0x32)))
trimws(x)
=> 问题:如何修剪 x?
问题的旧文本:
请参阅随附的屏幕截图。不幸的是,我无法创建可重现的示例,因为dput 正在影响结果...
任何人都知道如何调查 x 出了什么问题?前导空格似乎不是标准空格!
charToRaw(x) 给出 a0 31 31 2e 31 33 32 35 39 32dput(charToRaw(x)) 给出 as.raw(c(0xa0, 0x31, 0x31, 0x2e, 0x31, 0x33, 0x32, 0x35, 0x39,
0x32))Encoding(x) 给出 "unknown"(与 Encoding(" 11.132592") 相同)
【问题讨论】:
-
无法在
R 3.4.0中重现问题x <- " 11.132592"; trimws(x)# [1] "11.132592" -
@akrun 我知道,令人沮丧!我的 R
3.3.2和你一样。我如何调查为什么 x 与dput中的值不同? -
@akrun,肯定是 R 3.2.2。但是您的代码不会重现该错误。检查我的屏幕截图:x
gives"11.132592",但现在是这样定义的。 -
可能是编码问题...如果您不能使用
dput(为什么?)请至少在此处发布charToRaw(x)和Encoding(x)的输出,也许这说明了原因... -
charToRaw(' ')产生20而x的第一个字符是a0;因此它可能不被识别为空格