많은 요소가 포함 된 벡터와 문자열이 포함 된 데이터 프레임의 열 사이의 일치를 확인하려고합니다.sapply 및 grepl을 사용하여 벡터를 여러 문자열에 일치시킬 때 토큰 추가
> x
KIND Quest
[1,] TRUE FALSE
[2,] TRUE FALSE
[3,] TRUE FALSE
[4,] FALSE TRUE
[5,] FALSE TRUE
문제는 'lieberkind'에 대한 TRUE 값을 생성 끝 "종류"에 대한 최초의 결과이다 :
vec <- c("KIND", "Quest")
string <- ("lieberkind", "kind", "KIND", "Quest Nutrition", "Quest")
x <- sapply(vec, function (x) grepl(x, string, ignore.case = TRUE))
이
의 결과이다.일반적으로는, 그냥 같은 단어 경계 지정하는 토큰을 추가 한 것 :
grepl("\\bKIND\\b", string, ignore.case = TRUE)
[1] FALSE TRUE TRUE FALSE FALSE
을하지만 난에 대해 벡터의 각 요소를 비교하는 sapply
을 사용하고 때 할 수있는 방법을 모른다 문자열의 각 요소
:
x <- sapply(vec, function (x) grepl(\\bx\\b, string, ignore.case = TRUE))
어떻게이 문제를 해결할 수 있습니까?
'\\ bx \\ b' 대신'paste0 ("\\ b", x, "\\ b")'일 가능성이 있습니까? 모든 항목이 영숫자입니까? –
'sprintf ("\\ b % s \\ b", vec)' – Jota
예, 모든 항목은 영숫자입니다! – vagabond