У меня очень широкий и длинный набор данных, из которого мне нужно выбрать строки, в которых любая из переменных соответствует определенным условиям. Пока фильтрация по области в dplyr
вместе с any_vars
очень близка к тому, что мне нужно. Проиллюстрировать:
x <- tibble(v1 = c(1, 1, 5, 3, 4), v2 = c(3, 1, 2, 1, 2))
filter_all(x, any_vars( . == min(.)))
производит
# A tibble: 3 x 2
v1 v2
<dbl> <dbl>
1 1 3
2 1 1
3 3 1
Я хочу добавить имя «переменной фильтрации» к результирующим строкам, как показано ниже:
v1 v2 var
<dbl> <dbl> <chr>
1 1 3 v1
2 1 1 v1
3 1 1 v2
4 3 1 v2
Какие-либо предложения? Я подозреваю, что одна из функций map
в purrr
может выполнять фильтрацию по одному, а затем объединять результаты.
Когда один соответствует нескольким переменным (спасибо @Moody_Mudskipper), я хотел бы показать строку несколько раз --- в этом случае как с v1
, так и с v2
.
v1
иv2
оба являются min в этой строке? - person Moody_Mudskipper   schedule 10.08.2017v1
, затем сv2
. - person Dong   schedule 10.08.2017