根据特定序列计算R中特定类型的加权平均值

问题描述 投票:0回答:1

我有一些数据如下,我想对其中一列进行特定类型的加权平均值。

    library("tidyverse")
    Mydata<-
    tibble(
    id = c(1,2,3,4,5,6,7,8,9,10),
    AGE=  c(15,16,17, 18, 19, 20, 21, 22, 23,24),
    Prob= c(25,30,43,43,25,25,25,25,67   
                 ,33)) 

我希望从上到下的所有概率列都发生类似随后的函数:

    prob.age15=(X+ (X+1)*2+ (X+2)*2+(X+3)*2+ (X+4))/8

    prob.age16=((X+1)+ (X+2)*2+(X+3)*2+ (X+4)*2+(X+5))/8
    porb.age17...

最后,我想要这样的东西:

r dplyr weighted
1个回答
0
投票

我认为您正在寻找

lead

Mydata %>%
  mutate(result = (Prob + 2 * lead(Prob) + 2 * lead(Prob, 2) + 
                     2 * lead(Prob, 3) + lead(Prob, 4))/8) %>%
  as.data.frame()
#>    id AGE Prob result
#> 1   1  15   25 35.250
#> 2   2  16   30 34.625
#> 3   3  17   43 31.750
#> 4   4  18   43 27.250
#> 5   5  19   25 30.250
#> 6   6  20   25 36.500
#> 7   7  21   25     NA
#> 8   8  22   25     NA
#> 9   9  23   67     NA
#> 10 10  24   33     NA
© www.soinside.com 2019 - 2024. All rights reserved.