【问题标题】:How can I count the frequency of string by another column value in a dataframe R如何通过数据帧 R 中的另一个列值计算字符串的频率
【发布时间】:2018-05-02 02:48:18
【问题描述】:

我正在使用的数据框的简化是:

> df1
         Any              nomMun
   1     2010             CADAQUES
   2     2011             CADAQUES
   3     2012             CADAQUES
   4     2010             BEGUR
   5     2011             BEGUR
   6     2012             BEGUR

我一直在阅读一些帖子,发现 plyr 库的计数返回一个带有字符串的数据帧及其频率。但我想要按年计算的频率。我想要获得的最终结果是一个数据框,如:

> df2
         nomMun       freq_2010     freq_2011     freq_2012
   1     CADAQUES         1             1             1
   2     BEGUR            1             1             1

谁能帮帮我?

对不起,如果我的解释不好...我不是母语,这是我第一次在这里问...

【问题讨论】:

    标签: r dataframe frequency


    【解决方案1】:

    在data.table中,只需使用.N

    setDT(df1)
    df1[, .N, .(nomMun, Any)]
    

    这将为您提供长格式的数据。换句话说,它看起来像:

    Any      nomMum      N
    2010     CADAQUES    1
    2011     CADAQUES    1
    2012     CADAQUES    1
    2010     BEGUR       1
    2011     BEGUR       1
    2012     BEGUR       1
    

    但是,如果您愿意,可以将其 dcast:

    dcast(df1[, .N, .(nomMun, Any)], nomMum ~ Any, value.var = "N")
    

    【讨论】:

      【解决方案2】:

      当基础 R 包含 table 函数时加载包似乎很愚蠢。

      > table(df1)
            nomMun
      Any    BEGUR CADAQUES
        2010     1        1
        2011     1        1
        2012     1        1
      

      【讨论】:

        【解决方案3】:

        tidyr::spread 可用于获得所需的输出:

        library(tidyverse)
        df1 %>% 
          group_by(nomMun, Any) %>%
          mutate(freq = n()) %>%
          spread(Any, freq)
        
        # # A tibble: 2 x 4
        # # Groups: nomMun [2]
        #    nomMun   `2010` `2011` `2012`
        # *  <chr>     <int>  <int>  <int>
        # 1 BEGUR         1      1      1
        # 2 CADAQUES      1      1      1
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-12-02
          • 2015-12-13
          • 1970-01-01
          • 2020-08-17
          • 1970-01-01
          • 2021-10-07
          • 1970-01-01
          相关资源
          最近更新 更多