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つの基準が一致するすべての行を数えたいと思います。私のアプローチは、複数の基準がある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を与えます。複数の基準が一致する場合、どのようにして行を数えることができますか?
私は間違ったアンパサンド演算子を使用していると思います。試してみてください:
sum(c['a']==2 & c['b']==2)
[1] 2
また、data.frame
内でサブセットを作成し、その行を見つけることもできます。
nrow(c[a==2 & b==2, ])
# [1] 2
P.S:それが、ベースRの関数であるように変数としてc
使用しないことをお勧めします。
答えをありがとう。例ではcという名前になっていますが、実際には私はより良い名前を持っています;-) – meles
@meles ohh..great! –
'&'はベクトル化されていますが、 '&&'は最初の一致のみを評価します – mtoto