说我有这个矢量鱼,我试图用grep()检测第4个元素“”。每当我使用grep()函数来检测“”我通常会检测任何其他字符串的方式时,它会返回所有值。 我有一个非常大的数据集,我正在使用它有很多这些值,我想用“其他”替换它们。
fish <- c("a", "b", "c", "")
grep("", fish)
返回
[1] 1 2 3 4
我希望它能够回归
[1] 4
这样我就可以替换这个缺失的值。
答案 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