2014-06-12 109 views
1

我想根据行总和来对df列进行子集划分。基于行总和的子集列

df数据框:

NE001 NE002 NE003 NE004 
    2  0  0  2 

我的预期输出dfo

NE001 NE004 
2  2 

我已经试过dfo <- df[,which(names(df) == colSums(df==2))],但不起作用。

有些想法?

+0

列我不太跟随qeustion /逻辑;你正在比较数字和字符串。为什么第一和第四列在这里匹配? –

+0

在这个'df'例子中,我们只有一行。然后到每个柱子的行的总和可以是'0'或'2'。我想对行的总和为'2'的列进行子集划分。 – user3091668

回答

5

你只是试图将总和为2的列子集?如果是这样,你就近了。这是一个小数据框的例子。

(d <- data.frame(x = c(2, 0), y = c(1, 2), z = c(1, 1))) 
# x y z 
# 1 2 1 1 
# 2 0 2 1 

由于colSums(d) == 2返回一个逻辑向量,我们可以与该子集,并且是TRUE将返回

colSums(d) == 2 
# x  y  z 
# TRUE FALSE TRUE 
d[colSums(d) == 2] 
# x z 
# 1 2 1 
# 2 0 1