2016-08-04 7 views
1

イベントが発生した場合はカウントし、発生した場合は結果が出るかどうかを調べます。のは、これが私のデータだから、特定の条件を持つカウント変数

#mydata 

a b c d consequence 
0 0 1 1 0 
1 0 1 1 1 
1 1 1 0 0 
0 0 0 1 0 

であると仮定しましょう、各変数のために、私は変数が発生した回数を、この変数は、その結果生じた回数を計算します。どのように「」

numberofa=length (subset(mydata, mydata$a==1)) 
    numberofaeffective= Length (subset(mydata, mydata$a==1 $ mydata$consequence=1)) 

のための例を各変数の2つのメトリックを計算するプログラムを作成できますか?私たちは、変数のそれぞれのためにそれを必要とする場合

#expected output 

variable count count-with-effect 
a  2   1 
b  1   0 
c  3   1 
d  3   1 
+0

したがって、 'consequence'は期待される出力列ですか?あなたのコードに基づいて、 'a'が1である行をサブセット化してから、再度column1に基づいてサブセット化します。私は期待される結果が何であるか分かりません。 – akrun

答えて

1

我々は(すなわち '' 'への論理ベクトルのsum

sum(dts$a==1) 
#[1] 2 

with(dts, sum(a==1 & consequence == 1)) 
#[1] 1 

でこれを行うことができますd ')

colSums(dts[1:4] == 1) 
# a b c d 
# 2 1 3 3 

と「結果」

colSums(dts[1:4] == 1 & (dts[5] == 1)[row(dts[1:4])]) 
#a b c d 
#1 0 1 1 

を有する第二のために、我々は特定の形式で、それが必要な場合は、私たちが操作して、グループを行い、その後、「長い」形式にデータセットをgatherことができ、summariseによってsum '値'列を照合する

library(dplyr) 
library(tidyr) 
gather(dts, variable, value, -consequence) %>% 
      group_by(variable) %>% 
      summarise(count = sum(value), count_with_effect = sum(value & consequence)) 
# variable count count_with_effect 
#  <chr> <int>    <int> 
#1  a  2     1 
#2  b  1     0 
#3  c  3     1 
#4  d  3     1 
+0

@MehdiFarhangian投稿を更新しました – akrun

関連する問題