2014-06-12 58 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