【发布时间】:2013-01-30 12:42:46
【问题描述】:
我在一个包含字符的数据集中有一些字符串
\x96
\x92
和其他人。
我不知道如何在 R 中为它们 grep。
我试过使用
pattern="\x96"
pattern="\\x96"
pattern="x96"
但无济于事。
是否有处理此类字符的特定方法,特别是在 R 中。
** 更新 **
根据 cmets 中的建议,perl=TRUE 允许 grep 工作
任何人都可以对正在发生的事情提供一个可靠的解释吗?
会话信息,以防万一
> sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-pc-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=C LC_COLLATE=C LC_MONETARY=C LC_MESSAGES=C LC_PAPER=C LC_NAME=C LC_ADDRESS=C
[10] LC_TELEPHONE=C LC_MEASUREMENT=C LC_IDENTIFICATION=C
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] ggplot2_0.9.3 RMySQL_0.9-3 DBI_0.2-5 stringr_0.6.1 data.table_1.8.6
【问题讨论】:
-
你能编辑你的标题吗?它似乎与您的实际问题无关。
-
@joran,感谢您指出这一点
-
请给出一个重现您的问题的例子。
pattern <- "\x92"; grepl(pattern, "\x92")有效,所以很难猜出你的情况有什么问题...... -
@joran -- 很奇怪。设置
perl=TRUE有什么不同吗? (FWIW,我的语言环境,来自Sys.getlocale()是English_United States.1252,我正在使用 Windows 机器。) -
@RicardoSaporta 我经常遇到法语字符的同样问题。我之前通过在最初导入数据时设置字符编码解决了这个问题。 Windows-1252 是我想到的。有时我什至在导入数据之前在文本编辑器中转换字符编码。 Grep 很难找到它们,因为它们实际上不是
\x96。\x96只是实际角色的表示。
标签: regex r special-characters