我显然错过了一些东西
当术语 I am ‘greping’ 明显在被 ‘grepped’ 的字符串中时,grep 返回 0:
在这个例子中,我检查字符串 x 是否在字符串 y 中:
x
[1] "c.3963+1G>T"
y
[1] "c.3963+1G>T"
grep(x, y)
integer(0)
x == y
[1] TRUE
这些字符串是由我在向量上所做的一系列 strsplit 组成的。即使 x 显然在 y 中,人们也会看到 grep 返回 0 的这种行为的原因是什么(它们甚至被认为与本例中的等效)?
最佳答案
详细说明akrun的答案。 grep
的第一个参数是一种模式(在没有 fixed = TRUE
的情况下)。在您的示例中,x
当用作模式时,包含 2 个具有特殊含义的字符。 .
意思是“匹配任何东西”。 +
表示“匹配前面的模式一次或多次”。所以这些字符不会直接与 y
进行比较。在 grep
.==
正在测试字符串的等效性,这是不同的。
关于R:当 x 在 y 中明确显示时,grep 返回 0(我没有检查空格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42709113/