基于行总和的子集列

时间:2014-06-12 10:21:19

标签: r syntax subset

我想基于行总和对df列进行子集化。

df数据框:

NE001  NE002  NE003  NE004
  2      0      0      2

我的预期输出dfo

NE001  NE004
 2       2

我尝试了dfo <- df[,which(names(df) == colSums(df==2))]但是没有用。

一些想法?

1 个答案:

答案 0 :(得分: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