基于 rowSums 的子集数据框

Subset dataframe based on rowSums

我正在尝试从我的数据集中删除多列的行总和等于特定数字的所有行。

看起来像这样:

a <- c(1,1,1,1,1,1)
b <- c(1,1,1,1,1,1)
e <- c(0,1,1,1,1,1)

d <- data.frame(a,b,e)    

d_subset <- d[!rowSums(d[,2:3], na.rm=T) == 1]

所以 d_subset 应该包含第 2 列和第 3 列之和不等于 1 的所有行。本质上,在这个例子中,第一行应该被删除。但是,这不起作用,我不确定为什么。

我们可以做到

subset(d, rowSums(d[2:3]) !=1)

您当前的代码中缺少逗号,请执行以下操作:

d_subset <- d[!rowSums(d[,2:3], na.rm=T) == 1,]

输出:

#  a b e
#2 1 1 1
#3 1 1 1
#4 1 1 1
#5 1 1 1
#6 1 1 1

你也可以只用这个:

d[rowSums(d[2:3]) != 1, ]

输出:

  a b e
2 1 1 1
3 1 1 1
4 1 1 1
5 1 1 1
6 1 1 1