2012-12-17 119 views
4

有沒有更好的方法來計算結果滿足條件的元素數量?R有多少元素滿足條件?

a <- c(1:5, 1:-3, 1, 2, 3, 4, 5) 
b <- c(6:-8) 
u <- a > b 
length(u[u == TRUE]) 
## [1] 7 
+0

可能重複:如何對測試換更多-than-one-conditional](http://stackoverflow.com/questions/13372158/r-how-to-test-for-more-than-one-conditional/13374197#13374197) –

回答

3

如果z只包括TRUEFALSE,後來乾脆

length(which(z)) 
14

總和就這直接,在邏輯矢量計數TRUE值的數目:

sum(u, na.rm=TRUE) 

當然而且也沒有必要以構建u代表此:

sum(a > b, na.rm=TRUE) 

工作也一樣。如果任何值爲NAsum將默認返回NAna.rm=TRUE忽略總和中的值(對於邏輯或數字)NA

+0

'T == T' is true – hadley

+2

如果你使用'mean'而不是'sum',那麼你得到的比例。 –

5

我一直使用表如下:

a <- c(1:5, 1:-3, 1, 2, 3, 4, 5) 
b <- c(6:-8) 
table(a>b) 
FALSE TRUE 
    8  7