我有一些数据如下,我想对其中一列进行特定类型的加权平均值。
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...
最后,我想要这样的东西:
我认为您正在寻找
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