2016-04-01 6 views
2

2つの基準が一致するすべての行を数えたいと思います。私のアプローチは、複数の基準があるCountifがR

a <- c(2,1,2,2,3,4,2,1,9) 
b <- c(2,1,2,1,4,4,5,6,7) 
c <- data.frame(a,b) 
sum((c['a']==2) && (c['b']==2)) 

ですが、これは2つの代わりに1を与えます。複数の基準が一致する場合、どのようにして行を数えることができますか?

+2

'&'はベクトル化されていますが、 '&&'は最初の一致のみを評価します – mtoto

答えて

3

私は間違ったアンパサンド演算子を使用していると思います。試してみてください:

sum(c['a']==2 & c['b']==2) 
[1] 2 
0

また、data.frame内でサブセットを作成し、その行を見つけることもできます。

nrow(c[a==2 & b==2, ]) 
# [1] 2 

P.S:それが、ベースRの関数であるように変数としてc使用しないことをお勧めします。

+0

答えをありがとう。例ではcという名前になっていますが、実際には私はより良い名前を持っています;-) – meles

+0

@meles ohh..great! –

関連する問題