【问题标题】:R Aggregate data frame sum and count in one stepR一步聚合数据帧总和和计数
【发布时间】:2016-05-27 10:46:12
【问题描述】:

我想知道是否有一种方法可以一步完成以下操作。

我有两列,一列包含不唯一的字符,另一列包含数字。

我做到了:

sum<-(aggregate(x=df$numbers, by=list(df$char), FUN=sum)
sum$char <- sum$Group.1
sum$Group.1 <- NULL
df <- setDT(df)[, .N, char]
df <- merge(df,sum,by="char")

想知道是否还有其他方法,例如使用cast,这将很简单,但只需一步。

【问题讨论】:

    标签: r dataframe count aggregate


    【解决方案1】:

    如果我们需要在原始数据集中创建两个新列,使用:=将输出分配给data.table中的'char'分组后的新列

    library(data.table)
    setDT(df)[, c("Sum", "Count") := list(sum(Numbers), .N) , by = char]
    

    但是,如果我们只需要一个汇总输出

    setDT(df)[, .(Sum = sum(Numbers), Count = .N), by = char]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-03
      • 1970-01-01
      • 2014-07-27
      • 1970-01-01
      • 2016-04-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-14
      相关资源
      最近更新 更多