Базовое решение R:
Саппли находит записи, которые не равны 0, применительно к нему проверяет, содержит ли вся строка только значения ИСТИНА и те, которые мы выбираем в data.frame.
df1[apply(sapply(df1[, 5:7], function(x) x != 0), 1, all), ]
col1 col2 col3 col4 col5 col6 col7
1 0 0 0 0 16.75 17.50 18.08
4 0 22 0 0 18.67 18.90 21.23
6 18 24 24 24 20.52 21.17 21.92
Данные (я читаю ваши данные с dec = ",", поэтому все данные читаются как числа):
df1 <- structure(list(col1 = c(0L, 18L, 18L, 0L, 18L, 18L), col2 = c(0L,
24L, 24L, 22L, 24L, 24L), col3 = c(0L, 24L, 24L, 0L, 24L, 24L
), col4 = c(0L, 24L, 24L, 0L, 24L, 24L), col5 = c(16.75, 19.83,
0, 18.67, 0, 20.52), col6 = c(17.5, 20.47, 21.17, 18.9, 20.42,
21.17), col7 = c(18.08, 0, 20.73, 21.23, 21.17, 21.92)), class = "data.frame", row.names = c(NA,
-6L))