使用小计和总计进行计算

Calculations using subtotals and totals

我有一个数据集,我在其中根据总 mpg 计算权重并将该权重应用于常数以计算列 "distribution"。我想要做的是,将另一个常量 100 分配给制造商为梅赛德斯的那些汽车。因此,我首先计算每辆汽车在总数中所处的位置,并分配 1000 辆所谓的分配加上另外 100 辆梅赛德斯汽车。我该怎么做?

library(data.table)
library(dplyr)
a <- mtcars
setDT(a, keep.rownames = TRUE)
colnames(a)[1] <- "Car"
b <- a %>%
  select(Car,mpg) %>%
  mutate(Weighting = mpg / sum(mpg)) %>%
  mutate(Distribution = Weighting * 1000)

示例输出:无法弄清楚如何在 R 中获取它,但这里有一个显示预期结果的 excel 图像。

唯一想到的办法就是单独计算,然后赋值给常量。

非常感谢您的帮助。 阿克塞尔

添加一个ifelse? 并将梅赛德斯汽车与 substr(Car, 1, 4) %in% "Merc"

匹配
b <- a %>%
  select(Car,mpg) %>%
  mutate(Merc_Weighting = ifelse(substr(Car, 1, 4) %in% "Merc", mpg / sum(mpg[substr(Car, 1, 4) %in% "Merc"]), NA)) %>%
  mutate(Merc_Distribution = Merc_Weighting * 100)

抱歉占用了大家的时间,但对我来说最简单的解决方案似乎是首先计算梅赛德斯的总余额并将其分配给一个变量,然后通过引用我的变量进行剩余计算。

如果有人遇到类似问题,请给我留言,我非常乐意提供帮助。