我的数据框在包含其他两个变量的每一行中都有一个值。
library(tidyverse)
df <- data_frame( car=c('A','A','A','B','B'), style=c('aa','bb','aa','aa','cc'), value=c(3,2,5,4,16) )
car style value
A aa 3
A bb 2
A aa 5
B aa 4
B cc 16
如何找到每个汽车组中每种样式的相对权重,以及每种样式在所有数据中的相对权重?这是所需的输出(不需要右侧的#注释,但为了清楚显示总重量计算,在此处添加):
car style value style_for_car style_total # total value count is 30
A aa 3 0.80 0.40 # (3+5+4)/30 = 0.40
A bb 2 0.20 0.067 # 2/30 = 0.067
A aa 5 0.80 0.40
B aa 4 0.20 0.40
B cc 16 0.80 0.533
我在下面的尝试仅成功计算了总重量。如何在同一 dplyr 管道中获得所需的输出:
df %>%
group_by(style) %>%
mutate( style_total = sum(value)/sum(.$value) )
car style value style_total
A aa 3 0.4000
A bb 2 0.0667
A aa 5 0.4000
B aa 4 0.4000
B cc 16 0.5333