2017-07-29 74 views
0

我有一個數據幀20,000個觀察值和171個變量。每行中的每個值都是+1,0或-1。使用R數據幀的總行值 - 其中行中的每個值都根據條件進行評估

我希望能夠總結(或計數)1場的每一行的數量和使用這個號碼可變數量172

我研究這一點,但無法找到一個解決方案。

rowsum()是不適合作爲我不能使它條件等rowsum(DF = 1)

同樣是與應用的情況下。例如,下面的代碼將無法正常工作:

apply(df, 1, sum(=1)). 

有沒有一種方法來計算某一行,其中僅該行中符合條件的這些值求和的條件的總和。

+1

'rowSums(DF == 1)' – Sotos

回答

1

總是最好的,如果你可以提供人們可以使用的數據。例如:

library(dplyr) 

df <- data_frame(col1 = sample(c(-1, 0, 1), 10, replace = TRUE), 
       col2 = sample(c(-1, 0, 1), 10, replace = TRUE), 
       col3 = sample(c(-1, 0, 1), 10, replace = TRUE), 
       col4 = sample(c(-1, 0, 1), 10, replace = TRUE)) 

這在我的情況給我們:

col1 col2 col3 col4 
1  1 1 0 0 
2 -1 0 -1 -1 
3  0 -1 1 0 
4 -1 -1 0 -1 
5 -1 1 1 1 
6  0 0 0 1 
7 -1 -1 -1 1 
8  1 -1 1 -1 
9  0 -1 -1 1 
10 0 1 1 -1 

現在就可以輕鬆實現你要尋找的是這樣的:

(df <- df %>% mutate(sums = rowSums(df == 1))) 

    col1 col2 col3 col4 sums 
1  1 1 0 0 2 
2 -1 0 -1 -1 0 
3  0 -1 1 0 1 
4 -1 -1 0 -1 0 
5 -1 1 1 1 3 
6  0 0 0 1 1 
7 -1 -1 -1 1 1 
8  1 -1 1 -1 2 
9  0 -1 -1 1 1 
10 0 1 1 -1 2 
相關問題