How to count the number of observations in R like Stata command count

前端 未结 2 1861
旧时难觅i
旧时难觅i 2021-02-05 23:46
aaa<- data.frame(sex=c(1,1,2,2,1,1), group1=c(1,2,1,2,2,2),group2=c(\"A\",\"B\",\"A\",\"B\",\"A\",\"B\"))

stata command:

count if se         


        
相关标签:
2条回答
  • 2021-02-06 00:28

    The with function will let you use shorthand column references and sum will count TRUE results from the expression(s).

    sum(with(aaa, sex==1 & group1==2))
    ## [1] 3
    
    sum(with(aaa, sex==1 & group2=="A"))
    ## [1] 2
    

    As @mnel pointed out, you can also do:

    nrow(aaa[aaa$sex==1 & aaa$group1==2,])
    ## [1] 3
    
    nrow(aaa[aaa$sex==1 & aaa$group2=="A",])
    ## [1] 2
    

    The benefit of that is that you can do:

    nrow(aaa)
    ## [1] 6
    

    And, the behaviour matches Stata's count almost exactly (syntax notwithstanding).

    0 讨论(0)
  • 2021-02-06 00:33

    You can also use the filter function from the dplyr package which returns rows with matching conditions.

    > library(dplyr)
    
    > nrow(filter(aaa, sex == 1 & group1 == 2))
    [1] 3
    > nrow(filter(aaa, sex == 1 & group2 == "A"))
    [1] 2
    
    0 讨论(0)
提交回复
热议问题