【问题标题】:How to count the occurrences of a specific value in a single column in R如何计算R中单列中特定值的出现次数
【发布时间】:2021-05-10 17:09:49
【问题描述】:

我有一个df,例如

a     b     sex
yes  yes    male
no   yes    female
yes  no     male

我想只计算性别列中男性的数量并将其存储为一个对象。

我正在运行这个:

n_male <- length(grep('male', tbl1_df[ ,"sex"]))
n_male

因为“男性”在“女性”中,但是,我得到了n_male = 3。如何更改此功能以使其成为n_male = 2

【问题讨论】:

    标签: r count


    【解决方案1】:

    根据显示的示例,不需要子字符串匹配。我们可以直接用==进行固定匹配,用sum得到逻辑向量的计数

    n_male <- sum(tbl1_df$sex == 'male')
    n_male
    #[1] 2
    

    grep 也可以匹配子串。 female 中有male

    如果我们要使用grep,请指定单词边界

    n_male <- sum(grepl('\\bmale\\b', tbl1_df$sex))
    

    length/grep

    n_male <- length(grep('\\bmale\\b', tbl1_df$sex))
    

    另外,在base R 中,我们可以只使用table

    table(tbl1_df$sex)
    

    获取两者的计数

    【讨论】:

      【解决方案2】:

      如果你可以使用mosaic 包,那么你可以这样做:

      library(mosaic)
      tally(~sex, data = tbl1_df)
      
      sex
      female   male 
           1      2 
      

      【讨论】:

        【解决方案3】:

        count() 可让您快速计算一个或多个变量的唯一值:df %&gt;% count(a, b)

        library(dplyr)
        df %>% count(sex)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-08-24
          • 2021-09-24
          • 2019-09-29
          • 2021-07-29
          • 1970-01-01
          • 1970-01-01
          • 2019-10-07
          相关资源
          最近更新 更多