如果任何列包含-1,则R排除

时间:2018-06-07 20:13:17

标签: r subset

如果我的数据集中大约80列中的任何一列的值为-1,我必须排除数据。列总数为100,其他20列允许具有-1值。 我知道这可以通过使用子集来完成,例如:

keep_data <- subset(foo, Var1 != -1 | Var2 != -1 | Var3 != -1 ....... upto Var80)

这可以用其他任何方式完成,我不需要传递子集中的所有80个变量,而是可以传递列表或其他方法吗?

1 个答案:

答案 0 :(得分:0)

如果需要,可以将cols定义为字符向量而不是数字

cols <- 2:4 #Columns which we'll check for -1

# Remove rows for which any of cols (defined above) are -1
subset(df, !rowSums(df[cols] == -1))

#You can also use brackets instead of subset
df[!rowSums(df[cols] == -1),]