Мы можем использовать colSums
здесь:
df <- data.frame(g1=c(2,2,2), g2=c(0,1,1), g3=c(1,1,1), g4=c(0,0,2), g5=c(1,1,1))
df[, !colSums(df==2)]
g2 g3 g5
1 0 1 1
2 1 1 1
3 1 1 1
Идея состоит в том, чтобы включить все строки из исходного фрейма данных, но включить только те столбцы, которые никогда не имеют значения 2. В этом случаевызов colSums()
будет равен нулю, что логически эквивалентно false
в R.