R一步聚合数据帧总和和计数

R一步聚合数据帧总和和计数,r,dataframe,count,aggregate,R,Dataframe,Count,Aggregate,我想知道是否有一种方法可以一步完成以下工作 我有两列,一列包含非唯一字符,另一列包含数字 我做到了: 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") sum如果需要在原始数据集中创建两个新列,请使用

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

我有两列,一列包含非唯一字符,另一列包含数字

我做到了:

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")

sum如果需要在原始数据集中创建两个新列,请使用
:=
数据表中按“char”分组后,将输出分配给新列

library(data.table)
setDT(df)[, c("Sum", "Count") := list(sum(Numbers), .N) , by = char]
但是,如果我们只需要一个摘要输出

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

如果需要在原始数据集中创建两个新列,请使用
:=
数据表中按“char”分组后,将输出分配给新列

library(data.table)
setDT(df)[, c("Sum", "Count") := list(sum(Numbers), .N) , by = char]
但是,如果我们只需要一个摘要输出

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