我对以下三个测试的输出结果感到困惑:
第一个测试包含特殊字符「°」,但输出结果正确。
这个包含引用的内容可以带来好的结果:
但是这个包含了°和引号的内容却返回了奇怪的结果。
第一个测试包含特殊字符「°」,但输出结果正确。
sub(pattern = ".*([[:digit:]]{5}).*", replacement = "\\1", x = "A°C 01160")
[1] "01160"
这个包含引用的内容可以带来好的结果:
sub(pattern = ".*([[:digit:]]{5}).*", replacement = "\\1", x = "01160 'aa")
[1] "01160"
但是这个包含了°和引号的内容却返回了奇怪的结果。
sub(pattern = ".*([[:digit:]]{5}).*", replacement = "\\1", x = "A°C 01160 'aa")
[1] "0 'aa"
顺便说一下,我也对一个问题感到困惑:如果我将相同的输入作为向量给出,结果并不相同:
sub(pattern = ".*([[:digit:]]{5}).*", replacement = "\\1", x = c("A°C 01160", "01160 'aa", "A°C 01160 'aa"))
[1] "01160" "0 'aa" "0 'aa"
有人知道如何理解我的问题的起源吗?
我在Mac OS 10.8上运行R 3.02,并使用法语UTF-8编码选项:
> sessionInfo()
R version 3.0.2 (2013-09-25)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
locale:
[1] fr_FR.UTF-8/fr_FR.UTF-8/fr_FR.UTF-8/C/fr_FR.UTF-8/fr_FR.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
loaded via a namespace (and not attached):
[1] tools_3.0.2
sessionInfo()
的结果发布到你的问题中。 - Andrie°
有关。它还特定于使用预定义字符类,并且可以通过将perl
或setBytes
设置为 TRUE 来防止。不过我不知道这个问题是由什么引起的。 - MattLBeck