grep中[A-Z]和LETTERS之间的差异

时间:2018-02-05 14:55:39

标签: r grep

我试图只保留id包含字母的行。我发现以下两种方式会产生不同的结果。

df[grep("[A-Z]",df$id),]
df[grep(LETTERS,df$id),]

似乎第二种方式会省略许多实际上有字母的行。

为什么?

1 个答案:

答案 0 :(得分:1)

如果你想在矢量中grep模式,请尝试:

to_match <- paste(LETTERS, collapse = "|")
to_match
[1] "A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z"

然后

df[grep(to_match, df$id), ]

说明: 您将匹配&#34; to_match&#34;中的任何字符。因为它们被&#34;或&#34;分开。运营商&#34; |&#34;。