我已经使group_by通过其他变量获得某些值的总和,现在需要获得关于该总和的每个值的加权百分比。
我很抱歉,如果这太基础了,但我正在考虑进行此操作的最佳方式。我想我可以在原始数据框中手动添加一列,只需将两列分开,但是当数据集很大时,这将不起作用。
我希望通过下面的例子,它会更清楚:
myvector1 <- c(1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2)
myvector2 <- c(1,1,1,2,2,2,3,3,1,1,1,2,2,2,3,3)
myvector3 <- c(1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8)
myvector4 <- c(rnorm(16))
mydf <- data.frame(myvector1, myvector2, myvector3, myvector4)
library(dplyr)
mycoeffs <- mydf %>% group_by(myvector1,myvector2) %>% summarize(mysum = sum(myvector4))
我想以良好的编程方式做什么(对不起,我正在学习)是创建一个列,在原始df中mydf $ myvector4中的differente值除以相应的总和的值有my mycoeffs $ mysum。
谢谢你,抱歉没有那么清楚,希望它是明白的。