很难用 grep 找到其中有点的名字
difficulties with finding the names that have dot in them with grep
我很难用 grep 找到其中有点的名字。它找不到它们。我对非点名没有任何问题。
我的意思是这样的名字:"J.D. Drew",我试过下面的代码:
grepl("J.D. Drew" ,data_player$name)
提前致谢
你需要转义那些点。因为 grepl
( 没有 fixed=TRUE
参数 )应该接受正则表达式作为第一个参数。正则表达式中的点匹配任何字符。为了匹配文字点,您需要在正则表达式部分转义它们。或者您可以使用 char class 将它们视为字面值,例如 [.]
grepl("J\.D\. Drew" ,data_player$name)
我认为您正在寻找类似这样的东西来查找变量中带有点的任何名称(字符串)?
# 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))]
希望对您有所帮助!
我很难用 grep 找到其中有点的名字。它找不到它们。我对非点名没有任何问题。 我的意思是这样的名字:"J.D. Drew",我试过下面的代码:
grepl("J.D. Drew" ,data_player$name)
提前致谢
你需要转义那些点。因为 grepl
( 没有 fixed=TRUE
参数 )应该接受正则表达式作为第一个参数。正则表达式中的点匹配任何字符。为了匹配文字点,您需要在正则表达式部分转义它们。或者您可以使用 char class 将它们视为字面值,例如 [.]
grepl("J\.D\. Drew" ,data_player$name)
我认为您正在寻找类似这样的东西来查找变量中带有点的任何名称(字符串)?
# 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))]
希望对您有所帮助!