【发布时间】:2012-12-13 01:23:59
【问题描述】:
这是一个更大更复杂数据集的最小示例,只是想弄清楚一些事情。
> grep("X10\\.1+",c("X10.10","X10.11","X10.12"))
[1] 1 2 3
现在我预计只返回2,因为“+”应该是“前一个元素的 1 个或多个”。我认为逃避期间(我必须处理,所以想在示例中保留它)可能会导致问题。
> grep("X101+",c("X1010","X1011","X1012"))
[1] 1 2 3
那么,我对“+”功能的理解是错误的?
结论:
谢谢@詹姆斯。所以我的理解是 + 是“前一个元素的另一个或多个”,而不是它的实际含义,即“前一个元素的一个或多个”。
11+ 会完成我的想法(在第一个 1 之后有一个额外的 1 或多个 1 等)。干杯
【问题讨论】:
-
嗨,您能解释一下为什么您预计只有 2 个被退回吗?
-
嗨 Nikos。根据我对 + 的理解,我预计只有 2 个,它是前面元素的 1 个或多个。所以 1+ 对于 11 或 111 或 1111 应该为 TRUE,但对于 10 或 12 等则不是,因为 0 是与 1 不同的字符。