我有一个大约1.5 L观测值和2个变量的数据集:name
和amount
。 name
可以反复使用相同的值,例如,名称ABC
可以在数据集中出现50次。
我想要一个包含两个变量的新数据框:name
和total amount
,其中每个name
都有一个唯一值,total amount
是之前所有金额的总和数据集。例如,如果ABC
在前一个数据集中分别与amount
== 1
,2
和3
出现三次,则在新数据集中{{1只会出现一次总计ABC
== amount
。
答案 0 :(得分:1)
您可以将data.table
用于大数据集:
library(data.table)
res<- setDT(df)[, list(Total_Amount=sum(amount)), by=name]
或使用dplyr
library(dplyr)
df %>%
group_by(name) %>%
summarise(Total_Amount=sum(amount))
或者@hrbrmstr建议,
count(df, name, wt=amount)
set.seed(24)
df <- data.frame(name=sample(LETTERS[1:5], 25, replace=TRUE),
amount=sample(150,25, replace=TRUE))