неожиданные результаты от str_detect () - PullRequest
0 голосов
/ 04 октября 2019

str_detect(c("abc", "xyz"), letters)) не возвращает ожидаемых результатов. Это должен быть вектор

[1]  TRUE TRUE TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[23] FALSE  TRUE TRUE TRUE

, но вместо этого он возвращает

str_detect(c("abc", "xyz"), letters))
[1]  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[23] FALSE  TRUE FALSE  TRUE

почему? и как мне получить желаемый результат?

1 Ответ

0 голосов
/ 04 октября 2019

Причина этого в том, что str_detect перезагружает аргументы. Он сравнивает abc с a, затем xyz с b, затем abc с c и так далее. Вы должны вставить abc и xyz в один символ или просто указать c("abcxyz"), но я предполагаю, что это может быть упрощенная версия более сложной проблемы.

library(stringr)
rgx <- paste0(c("abc", "xyz"), collapse = "")
str_detect(rgx, letters)
...