Я бы, вероятно, согласился с предложением Джорана заменить 0 на NA, а затем использовать упомянутые вами встроенные функции.Если вы не можете / не хотите этого делать, один из подходов состоит в том, чтобы использовать any()
, чтобы найти строки, которые содержат 0, и вывести их из поднабора:
set.seed(42)
#Fake data
x <- data.frame(a = sample(0:2, 5, TRUE), b = sample(0:2, 5, TRUE))
> x
a b
1 2 1
2 2 2
3 0 0
4 2 1
5 1 2
#Subset out any rows with a 0 in them
#Note the negation with ! around the apply function
x[!(apply(x, 1, function(y) any(y == 0))),]
a b
1 2 1
2 2 2
4 2 1
5 1 2
Для реализации метода Джорана, что-то вроде этогоследует начать:
x[x==0] <- NA