【问题标题】:How Can I Aggregate A Column of Strings By Frequency [duplicate]如何按频率聚合一列字符串[重复]
【发布时间】:2021-09-26 06:08:32
【问题描述】:

假设我有如下格式的数据框:

     x     y
    2001 Apples
    2001 Apples
    2001 Apples
    2001 Oranges
    2001 Oranges
    2002 Apples
    2002 Apples
    2002 Apples
    2002 Apples
    2002 Oranges
    2002 Oranges
    2002 Oranges

我怎样才能把这些数据合并起来,结果会是这样的:

     x     y      Frequency
    2001 Apples       3
    2001 Oranges      2
    2002 Oranges      3
    2002 Apples       4

我知道表格可以很好地显示频率,但我不确定如何汇总这些数据?我尝试过类似aggregate(df1$x ~ df1$y, df1, FUN = sum) 的操作,但没有产生预期的结果。

【问题讨论】:

  • 只要使用table(df1)
  • 显示频率,但不聚合。
  • 这不是您想要的,即获得计数。 table返回一个table对象,可以转换成data.frame as.data.frame(table(df1))
  • 不,我正在寻找这样的东西。 stackoverflow.com/questions/10879551/… 我现在有,所以没问题。
  • as.data.frame(table(df1)) 给出了您帖子中的预期

标签: r dataframe


【解决方案1】:

带有base R 函数;

df1 <- read.table(textConnection('x     y
    2001 Apples
    2001 Apples
    2001 Apples
    2001 Oranges
    2001 Oranges
    2002 Apples
    2002 Apples
    2002 Apples
    2002 Apples
    2002 Oranges
    2002 Oranges
    2002 Oranges'),header=T)

data.frame(table(df1))

输出;

  x     y        Freq
  <fct> <fct>   <int>
1 2001  Apples      3
2 2002  Apples      4
3 2001  Oranges     2
4 2002  Oranges     3

【讨论】:

    【解决方案2】:

    tidyverse 方法:

    x <- c(2001,2001,2001,2001,2001,2002,2002,2002,2002,2002,2002,2002)
    y <- c("Apples","Apples","Apples","Oranges","Oranges",
           "Apples","Apples","Apples","Oranges","Oranges","Oranges","Oranges")
    
    df <- tibble(x = x, y = y)
    
    library(dplyr)
    
    df %>% 
      count(x,y,name = "Frequency")
    
    # A tibble: 4 x 3
          x y       Frequency
      <dbl> <chr>       <int>
    1  2001 Apples          3
    2  2001 Oranges         2
    3  2002 Apples          3
    4  2002 Oranges         4
    

    【讨论】:

      猜你喜欢
      • 2018-04-26
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      • 2020-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多