2015-02-05 6 views
0

Я пытаюсь выполнить поиск в строковой переменной, и каждый раз, когда найден определенный шаблон, функция funtion говорит мне TRUE. Я использую grepl найти матч:r grepl поиск нескольких шаблонов в переменной

grepl(pattern,x) 

Узор должен быть построен из нескольких слов, которые, в свою очередь, захваченными из файла CSV.

Я думаю, что я делаю что-то неправильно, строя шаблон, но я не могу найти ошибку.

Ниже вымышленный пример

#example file with the string data to classify 
des<-c("DDD SS","FFFFF P","AAA EKO BBB","KK SUPER OO","JJ") 
num<-c(5,6,2,7,9) 
d0<-data.frame(des,num) 


#example file with the pattern to search for as rows 
t0<-data.frame(c("SUPER","A ISABEL","EKO")) 

t1<-as.list(t(t0)) #traspose the vector as la list 
t2<-do.call("paste",c(t1,sep="'|'")) #collapse to a single string with '|' (or) symbol for the grepl pattern 

cl<-grepl(t2,d0$des) 

Окончательный grepl не находит ни одного матча

> cl 
[1] FALSE FALSE FALSE FALSE FALSE 

Любое предложение?

Заранее спасибо

ответ

1

Попробуйте

t2 <- paste(t1, collapse="|") 
grepl(t2, d0$des) 
#[1] FALSE FALSE TRUE TRUE FALSE 
+0

спасибо большое! Это трюк! –

 Смежные вопросы

  • Нет связанных вопросов^_^