关于下面的数据框中的累积百分比计算,我有一个独特的问题。
dtFMCount <- c(6, 21, 3, 11, 1, 3, 44, 2, 4, 1)
dtTotDur <- c(607142.353, 96240.799, 79624.690, 78672.113, 30265.219, 15037.119, 14870.920, 8470.878, 7305.159, 4126.279)
DF <- data.frame(dtFMCount, dtTotDur)
summ <- sum(DF$dtTotDur)
DF$Cumm <- round((100 * DF$dtTotDur/summ), digits = 2)
使用上面的代码,我可以使用DT $ Cumm列作为DF $ dtTotdur的总和来获得类似的DF。
我想做的是添加另一列DF $ Cumm2,该列将显示基于100%比例的累积值。我可以在excel中看到下面的内容。
因此,我尝试了几种不同的方法,但是并不能满足我的需求。以下代码及其变体但未得到结果。
DF <- DF %>% group_by(dtFMCount, dtTotDur) %>% summarise(proportion = n()) %>%
mutate(Perc = cumsum(100*proportion/sum(proportion))) %>%
select(-proportion)
任何以data.frame或data.table格式提供的帮助都将有所帮助,感谢您的帮助。
答案 0 :(得分:1)
我们可以做到
library(dplyr)
df %>%
mutate(New = cumsum(Cumm))