我想df根据行的总和对列进行子集化.
df 数据帧:
NE001 NE002 NE003 NE004
2 0 0 2
Run Code Online (Sandbox Code Playgroud)
我的预期产量dfo:
NE001 NE004
2 2
Run Code Online (Sandbox Code Playgroud)
我试过dfo <- df[,which(names(df) == colSums(df==2))]但不行.
一些想法?
您是否只是尝试将总和为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
Run Code Online (Sandbox Code Playgroud)
由于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
Run Code Online (Sandbox Code Playgroud)