Как я могу передать кадр данных, состоящий из списка логических векторов и списка векторов символов, в purrr::map2()
для подмножества векторов символов с помощью логических векторов?
Мои усилия работают без каналов, но я не уверен, как это сделать с трубами:
Например, используя этот фрейм данных:
a_pair = tibble(mask = list(TRUE, c(FALSE, TRUE), TRUE, TRUE,
c(FALSE, FALSE, FALSE, TRUE), TRUE, TRUE, TRUE,
TRUE, c(FALSE, FALSE, FALSE, TRUE)),
strings = list(".", c("0.29966", "0.31145"), "0.48243",
"0.55122",
c("0.10099", "0.10142", "0.49873", "0.56246"),
"0.56246", "0.10127", "0.70687", "0.68338",
c("0.03365", "0.16895", "0.68338", "0.82954")))
Это работает:
library(purrr)
map2(a_pair$mask, a_pair$strings, function(logical, string) subset(string, logical))
Но это (как предлагается в связанном вопрос) нет:
a_pair %>% map2(., names(.), ~{subset(.y, .x)})
Error in subset.default(.y, .x) : 'subset' must be logical
Мне нужно сделать какое-то исключение из списка или по-другому ссылаться на логические векторы?