Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 使用grep选择列表中包含的字符串_Regex_R_Dataframe - Fatal编程技术网

Regex 使用grep选择列表中包含的字符串

Regex 使用grep选择列表中包含的字符串,regex,r,dataframe,Regex,R,Dataframe,我有一个数据帧: id <- c(1:5) name <- c("blackdog","whitedog", "blackcat","whitecat","greyrabbit") df <- data.frame(id,name) df id我想你要做的是使用apply函数: > df$name[unique(unlist(lapply(select, FUN=function(x) grep(x,df$name))))] [1] blackdog blackc

我有一个数据帧:

id  <- c(1:5)
name <- c("blackdog","whitedog", "blackcat","whitecat","greyrabbit")
df <- data.frame(id,name)
df

id我想你要做的是使用apply函数:

> df$name[unique(unlist(lapply(select, FUN=function(x) grep(x,df$name))))]
[1] blackdog   blackcat   whitedog   greyrabbit
Levels: blackcat blackdog greyrabbit whitecat whitedog

这就是你想要的吗?

这里不需要使用循环:

df[grep(paste(select,collapse='|'),df$name),]

## id       name
## 1  1   blackdog
## 2  2   whitedog
## 3  3   blackcat
## 5  5 greyrabbit

+1-我的第一个想法是在列表中插入“|”,但我无法让它轻松工作。我错过的是“崩溃”。谢谢
> df$name[unique(unlist(lapply(select, FUN=function(x) grep(x,df$name))))]
[1] blackdog   blackcat   whitedog   greyrabbit
Levels: blackcat blackdog greyrabbit whitecat whitedog
df[grep(paste(select,collapse='|'),df$name),]

## id       name
## 1  1   blackdog
## 2  2   whitedog
## 3  3   blackcat
## 5  5 greyrabbit