如何将汇总度量应用于匹配 R 中的 data.frame 列

How to apply a summarization measure to matching data.frame columns in R

我有一个假设的数据框如下:

# inventory of goods            
year    category    count-of-good
2010    bikes       1   
2011    bikes       3   
2013    bikes       5   
2010    skates      1   
2011    skates      1   
2013    skates      0   
2010    skis        0   
2011    skis        2
2013    skis        2

我的最终目标是展示 %-<good>-of-decade-total 逐年变化的堆积条形图。

因此,我想计算以下内容:

现在,我应该能够 ggplot(df, aes(factor(year), fill=percent.total.decade.goods) + geom_bar 或类似的(希望如此!)创建一个条形图,其中每个条形总和为 100%。

然而,我正在努力确定如何以非 hacky 方式获得 percent.good.of.decade.total(最右边的列)。感谢您的宝贵时间!

您可以使用 dplyr 计算总和:

library("dplyr") newDf=df%>%group_by(year)%>%mutate(decades.total.goods=sum(count.of.goods))%>%ungroup()

使用 mutate 或普通 R 语法来计算“十年总计的好百分比”

注意:您还没有分享您的确切数据框,因此这些名称显然是编造的。

我们可以通过 base R

中的 ave 来做到这一点
df1$decades.total.goods <- with(df1, ave(count.of.good, year, FUN = sum))
df1$decades.total.goods
#[1] 2 6 7 2 6 7 2 6 7