使用grep

时间:2015-11-03 05:52:34

标签: r grepl

我很难找到带有grep点的名字。它找不到它们。我对非虚线名称没有任何问题。 我的意思是这样的名字:“J.D。Drew”,我尝试过以下代码:

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

提前致谢

2 个答案:

答案 0 :(得分:1)

你需要逃避这些点。因为grepl没有fixed=TRUE参数)应该接受正则表达式作为第一个参数。正则表达式中的Dot匹配任何角色。为了匹配文字点,您需要在正则表达式部分中将它们转义。或者你可以使用char类来处理像[.]

这样的文字
grepl("J\\.D\\. Drew" ,data_player$name)

答案 1 :(得分: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))]

希望这有帮助!