首页 > 解决方案 > 让在一年内为特定组计算的平均值与该给定年份的所有组有关

问题描述

我为我糟糕的标题制定道歉。它与我在发布此问题之前无法找到类似/相关问题的方式非常相似。如果已经提出了类似的问题,并且已经提供了足够的答案,请告诉我。

我的问题如下:

我生成了一个变量 ,VarX_mean它计算VarX跨组的平均值:YearGroup2,使用以下代码:

setDT(df)[, VarX_mean := mean(VarX), by = c("Year","Group2")]

随后,我将 Group2==0 的 VarX_mean 替换为 0's, VarX_mean2

我希望创建的内容:我实际上想要的是VarX_mean计算出的Group2与全年有关的内容,即列:WhatIWishtoCreate

    Year   Group2   VarX   VarX_mean  VarX_mean2    WhatIWishtoCreate
    2001     1        2      3          3             3
    2001     1        3      3          3             3
    2001     1        4      3          3             3
    2001     0        6      6          0             3
    2002     1        5      5.5        5.5           5.5
    2002     1        6      5.5        5.5           5.5
    2002     0        9      9          0             5.5
    2002     0        9      9          0             5.5
    2002     0        9      9          0             5.5
    2003     1        1      2.5        2.5           2.5
    2003     1        2      2.5        2.5           2.5
    2003     1        4      2.5        2.5           2.5
    2003     1        3      2.5        2.5           2.5
    2003     0        4      4          0             2.5
    2003     0        4      4          0             2.5

先感谢您。亲切的问候

标签: rmean

解决方案


您可以使用dplyr

library(dplyr)

df %>%
    group_by(Year) %>% 
    arrange(Group2) %>% 
    mutate(WhatIWishtoCreate = first(VarX_mean)

推荐阅读