基于特定序列计算R中特定种类的加权平均值

jljoyd4f  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(68)

我有一些数据如下,我想有一个特定类型的加权平均值为一列。

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列上:

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...

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

im9ewurl

im9ewurl1#

我想你正在寻找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

相关问题