基于行计数和外部逻辑计算组的分数

时间:2018-05-20 06:17:31

标签: r

我是这个网站的新手,这是我的第一篇文章。

我有数据集,我想使用之前的行数据计算每个组的得分,并应用逻辑。我将提供一个基本的例子,我认为这会有所帮助。

数据:

S.no, Group, score1
1, GroupA, 1
2, GroupA, 0
3, GroupA, 1
4, GroupA, 1
5, GroupA, 1

现在我想计算每行的汇总score1。 对于row5,我想要sum(score1 from rows1到5)/5,i.e。 4/5 同样对于row4,我想要sum({1}}从row1到4)/ 4,I.e。 3/4

我想为每个组的每一行做同样的事情。我现在只为score1演示了它。

谢谢, 约翰

1 个答案:

答案 0 :(得分:1)

您需要cumsum

library(dplyr)

df %>%
  group_by(Group) %>%
  mutate(score = cumsum(score1)/ row_number())

给出了

    Sno Group  score1 score
1     1 GroupA      1 1    
2     2 GroupA      0 0.5  
3     3 GroupA      1 0.667
4     4 GroupA      1 0.75 
5     5 GroupA      1 0.8  

示例数据:

df <- structure(list(Sno = 1:5, Group = c("GroupA", "GroupA", "GroupA", 
"GroupA", "GroupA"), score1 = c(1L, 0L, 1L, 1L, 1L)), class = "data.frame", row.names = c(NA, 
-5L))