我想基于行总和对df
列进行子集化。
df
数据框:
NE001 NE002 NE003 NE004
2 0 0 2
我的预期输出dfo
:
NE001 NE004
2 2
我尝试了dfo <- df[,which(names(df) == colSums(df==2))]
但是没有用。
一些想法?
答案 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