使用R中的grep()检测“”

时间:2017-06-13 11:07:41

标签: r replace grep

说我有这个矢量鱼,我试图用grep()检测第4个元素“”。每当我使用grep()函数来检测“”我通常会检测任何其他字符串的方式时,它会返回所有值。 我有一个非常大的数据集,我正在使用它有很多这些值,我想用“其他”替换它们。

fish <- c("a", "b", "c", "")
grep("", fish)

返回

[1] 1 2 3 4

我希望它能够回归

[1] 4

这样我就可以替换这个缺失的值。

1 个答案:

答案 0 :(得分:1)

为此使用grep()是疯了。如果必须,你可以这样做:

grep("^$", c("a", " ", ""))
# [1] 3

但在R中你只是这样做:

which(c("a", " ","") == "")
# [1] 3

或:

which(nchar(c("a"," ","")) == 0)
# [1] 3

至于为什么grep()返回所有4个位置:grep()不匹配字符串。它匹配字符串的部分。所以在所有4个字符串中都存在""。将""替换为"b",您会立即看到:

grep("b", c("ab"," b", "b"))
# [1] 1 2 3