从列累积范围计算累积(100%)百分比

时间:2019-08-20 13:44:00

标签: r dataframe

关于下面的数据框中的累积百分比计算,我有一个独特的问题。

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。

enter image description here

我想做的是添加另一列DF $ Cumm2,该列将显示基于100%比例的累积值。我可以在excel中看到下面的内容。

enter image description here

因此,我尝试了几种不同的方法,但是并不能满足我的需求。以下代码及其变体但未得到结果。

DF <- DF %>% group_by(dtFMCount, dtTotDur) %>% summarise(proportion = n()) %>%
mutate(Perc = cumsum(100*proportion/sum(proportion))) %>%
select(-proportion)

任何以data.frame或data.table格式提供的帮助都将有所帮助,感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我们可以做到

library(dplyr)
df %>% 
     mutate(New = cumsum(Cumm))