Как использовать функцию dplyr::filter()
с номерами столбцов, а не с именами столбцов?
В качестве примера я хотел бы выбрать выбранные извне столбцы и вернуть строки, которые являются нулями. Например, для такого фрейма данных, как этот
> test
# A tibble: 10 x 4
C001 C007 C008 C020
<dbl> <dbl> <dbl> <dbl>
1 -1 -1 0 0
2 0 0 0 0
3 1 1 0 0
4 -1 -1 0 0
5 0 0 0 -1
6 0 0 0 1
7 0 1 1 0
8 0 0 -1 -1
9 1 1 0 0
10 0 0 0 0
и вектора S = c(1,3,4)
Как мне выбрать все строки в test
где all(x==0)
? Я могу сделать это с test[apply(test[,S] 1, function(x){all(x==0)},]
, но я бы хотел использовать это как часть %>%
конвейера.
Мне не удалось выяснить синтаксис filter()
, чтобы использовать номера столбцов, а не имена. Реальные данные имеют гораздо больше столбцов (> 100) и строк, а номера столбцов предоставляются внешним алгоритмом.