мы можем использовать filter_at
library(dplyr)
ss %>%
filter_at(-1, all_vars(!. %in% c(0, "Err:502")))
# A B C D E
#1 D 43.22435 324.5657 1.000320 345.7
#2 F 0.0004342 234 12.000000 78.31214
#3 F dfgd 2.313 0.000487 0.12345
Или используя base R
ss[!Reduce(`|`, lapply(ss[-1], `%in%`, c(0, "Err:502"))),]
ПРИМЕЧАНИЕ. Оба метода эффективны по сравнению с apply
Код ОП с apply
можно исправить как
ss[apply(ss, 1, function(x) all(! x %in% c(0, "Err:502"))), ]
# A B C D E
#3 D 43.22435 324.5657 1.000320 345.7
#6 F 0.0004342 234 12.000000 78.31214
#7 F dfgd 2.313 0.000487 0.12345
данные
ss <- structure(list(A = c("C", "B", "D", "E", "E", "F", "F"), B = c("-1.3456",
"56.258", "43.22435", "Err:502", "0", "0.0004342", "dfgd"), C = c("1.232",
"0", "324.5657", "341.4656", "Err:502", "234", "2.313"), D = c(23.5453,
-1.00023, 1.00032, 1.9823, 2324, 12, 0.000487), E = c("0", "234.556",
"345.7", "32.12", "asd", "78.31214", "0.12345")),
class = "data.frame", row.names = c(NA, -7L))