我有一个数据框
df <- data.frame(id = c(1:10), envr_val1 = c(0:9), envr_val2 = c(1:9,0),
count = round(rnorm(mean = 10, sd = 10, n = 10)))
我想查找envr_val1
或envr_val2
中至少有一个为0的所有行,但count
为零的行。
在真实数据集中,我查找的列数很大,因此我在对象中保存了感兴趣的列的名称:
colzerofix <- c('envr_val1', 'envr_val2')
我尝试过的事情:
df[colzerofix == 0,]
df[which(pmin(unlist(df[,colzerofix]))==0),]
答案 0 :(得分:1)
df[Reduce("|", lapply(colzerofix, function(x) df[,x] == 0)) & df$count != 0,]
#OR
df[rowSums(df[colzerofix] == 0, na.rm = TRUE) > 0 & df$count != 0,]