0

我很难用 grep 找到其中包含点的名称。它找不到它们。我对非点名没有任何问题。我的意思是诸如“JD Drew”之类的名称,我尝试了以下代码:

grepl("J.D. Drew" ,data_player$name)

提前致谢

4

2 回答 2

1

你需要避开那些点。因为grepl不带fixed=TRUE参数)应该接受正则表达式作为第一个参数。正则表达式中的点匹配任何字符。为了匹配文字点,您需要在正则表达式部分对它们进行转义。或者您可以使用 char 类将它们视为文字类[.]

grepl("J\\.D\\. Drew" ,data_player$name)
于 2015-11-03T05:53:14.267 回答
0

我认为您正在寻找类似的东西来查找变量中带有点的任何名称(字符串)?

# example data frame
data_player <- data.frame(name=c("Judith","J.D.Drew","S.Harris","Simon"),stringsAsFactors = F)

# version 1 with your mentioned loop
for(i in 1:nrow(data_player)){
  if(grepl("(\\.)+",data_player$name[i])) print(data_player$name[i])
}

# version 2 without a loop
data_player$name[which(grepl("(\\.)+",data_player$name))]

希望这可以帮助!

于 2015-11-03T07:01:06.953 回答