Учитывая данные кадра:
v1_attr1 <- c(1,0,0,0,1,0,0,0,1,1) %>% as.integer ()
v1_attr2 <- c(0,1,0,0,1,1,1,1,1,1) %>% as.integer ()
v2_attr1 <- c(0,0,1,0,0,1,1,1,0,0) %>% as.integer ()
v2_attr2 <- c(0,0,0,1,0,1,1,1,0,0) %>% as.integer ()
df <- data.frame (v1_attr1, v1_attr2, v2_attr1, v2_attr2)
Как я могу установить фильтр для attr
каждого v[[x]]
?
Я попробовал следующий код, чтобы получить количество строк в каждом data.frame
, отфильтрованном по attr
.
library(dplyr)
# create list for vs
list_vs <- list ("v1", "v2")
# set multiple attr filter for each v[[x]] to get the respective number of rows in each filtered data.frame (presented in a list)
filtered <- lapply (list_vs, function (x){
df %>% filter (noquote(paste0(list_vs[[x]], "_attr1")) == 1 | noquote(paste0(list_vs[[x]], "_attr2")) == 1) %>%
nrow ()
})
Хотя этот код не возвращает ошибку, результат для filtered[[x]]
всегда равно 0. Как мне правильно установить аргументы фильтра, чтобы получить желаемое количество строк в каждом data.frame
? Я использовал noquote
, потому что иначе аргументы фильтрации будут вставлены в кавычки.