別のベクトルで指定されたすべての文字列を含むベクトル(文字列)の要素を探したいと思います。例えば、R:複数の文字列の一致を含むベクトル要素を見つける
x <- c("xxxabcxdxexfxx", "xxaxbcdexx", "xaxxxbc")
a <- c("a", "b", "c", "d", "e", "f")
は、私はそう
[1] TRUE FALSE FALSE
別のベクトルで指定されたすべての文字列を含むベクトル(文字列)の要素を探したいと思います。例えば、R:複数の文字列の一致を含むベクトル要素を見つける
x <- c("xxxabcxdxexfxx", "xxaxbcdexx", "xaxxxbc")
a <- c("a", "b", "c", "d", "e", "f")
は、私はそう
[1] TRUE FALSE FALSE
sapply(x, function(string) all(Vectorize(grepl)(pattern = a, x = string)))
#xxxabcxdxexfxx xxaxbcdexx xaxxxbc
# TRUE FALSE FALSE
OR
rowSums(sapply(a, function(P) grepl(P, x))) == length(a)
#[1] TRUE FALSE FALSE
OR
を取得するには、a
内のすべての文字列が含まれている
x
の要素を見つけるしたいと思います を使用
OR
lengths(sapply(strsplit(x,""), setdiff, x = a)) == 0
#[1] TRUE FALSE FALSE
:
lengths(gregexpr(pattern = paste(a, collapse = "|"), text = x)) == length(a)
# [1] TRUE FALSE FALSE
もう1:
sapply(strsplit(x,""), function(y) all(a %in% y))
この場合はうまくいきますが、探している文字列が複数の文字であれば動作しないと思います。 – arielle
そのようなシナリオでは、@ d.bと@ Henrikのソリューションのように 'grep'を使うのは当てはまります –
作品、ありがとうございました! – arielle
まだ最短の文字を持っています;-) –