使用小计和总计的计算
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用小计和总计的计算相关的知识,希望对你有一定的参考价值。
我有一个数据集,我根据总mpg计算权重,并将此权重应用于常量来计算列“分布”。我想要做的是,将另一个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)
另一答案
抱歉占用了人们的时间,但似乎对我来说最简单的解决方案是首先计算梅赛德斯的总余额并将其分配给变量,然后通过参考我的变量来完成剩余的计算。
如果有人遇到类似的问题,请告诉我一行,我会非常乐意提供帮助。
以上是关于使用小计和总计的计算的主要内容,如果未能解决你的问题,请参考以下文章