我尝试使用<{1}}中的修正,但它匹配data[grep(14,data$x,fixed=TRUE),]
,data$x == 14
或其data$x == 1144
中包含14行的任何行} field。
答案 0 :(得分:0)
您可以在正则表达式中使用\\b
来检测字边界。
例如:
data <- data.frame(field=c(14,1144,"test14test","test 14 test"))
grep("\\b14\\b",data$field)
#[1] 1 4
如果data$field
只是数字,那么@Pierre Lafortune的解决方案可能更合适。
答案 1 :(得分:0)
grep()函数匹配一个模式,这就是为什么它匹配&#34; 14&#34;和&#34; 1144&#34;正如皮埃尔在评论中指出的那样,你可以将模式改为正则表达式&#34; ^ 14 $&#34;。 ^要求它以该模式开始,并且$要求它以该模式结束。这将使你完全匹配。
分组数据的另一个好方法是使用subset()函数。
data_subset <- subset(data, x == "14")