Пример кода ниже работает, но у меня вопрос, как я могу написать это с меньшим количеством кода и более элегантно?
Дело в том, что у меня есть столбцы с похожими именами. В этом примере я хочу выбрать все столбцы, начинающиеся с B
и где все находятся со значением FALSE
.
set.seed(0)
df <- data.frame(A = sample(c(T, F), 100, replace=T),
B1 = sample(c(T, F), 100, replace=T),
B2 = sample(c(T, F), 100, replace=T),
B3 = sample(c(T, F), 100, replace=T))
n <- names(df)[startsWith(names(df), 'B')]
result <- df[df$B1 == FALSE & df$B2 == FALSE & df$B3 == FALSE, n]
print(result)
Результат
B1 B2 B3
1 FALSE FALSE FALSE
26 FALSE FALSE FALSE
31 FALSE FALSE FALSE
35 FALSE FALSE FALSE
51 FALSE FALSE FALSE
66 FALSE FALSE FALSE
70 FALSE FALSE FALSE
84 FALSE FALSE FALSE
Что я пробовал это с неожиданными результатами
df[df[,n] == FALSE, n]