首页 > 解决方案 > 如何分别计算每个gvkey的行总和?

问题描述

我试图分别计算每个gvkey的twitter关注者的累积总和,并且我使用了group_by函数,但是输出仍然是整列的总和,我想是“for(i in i: nrow(premod_e))

 predmod_e <- predmod_e %>%
      arrange(gvkey, date) %>%#arrange the gvkey and date
      group_by(gvkey)#use group_by for respective calculation
      for (i in 1:nrow(predmod_e)) {
        predmod_e[i+1,]$x <- predmod_e[i+1,]$x + predmod_e[i,]$x
      }#for loop to calculate

标签: r

解决方案


也许只是这样:

 predmod_e <- predmod_e %>%
      arrange(gvkey, date) %>%
      group_by(gvkey) %>%
      mutate(newx = cumsum(x))

如果您想自己对这些组做某事(即,不使用dplyr动词),那么您应该使用这些组,因为它们被 tidy 动词“知道”。幸运的是,它们仅作为属性存储:

mtcars %>%
  group_by(cyl) %>%
  attr(., "groups")
# # A tibble: 3 x 2
#     cyl .rows     
#   <dbl> <list>    
# 1     4 <int [11]>
# 2     6 <int [7]> 
# 3     8 <int [14]>

推荐阅读