【发布时间】:2020-08-03 03:35:53
【问题描述】:
我有一个时间序列面板数据集,其结构如下:
df <- data.frame(
year = c(2012L, 2013L, 2014L, 2012L, 2013L, 2014L),
id = c(1L, 1L, 1L, 2L, 2L, 2L),
c = c(11L, 13L, 13L, 16L, 15L, 15L),
flag = c(FALSE, TRUE, FALSE, FALSE, FALSE, FALSE)
)
#> year id c flag
#> 1 2012 1 11 FALSE
#> 2 2013 1 26 TRUE
#> 3 2014 1 13 FALSE
#> 4 2012 2 16 FALSE
#> 5 2013 2 15 FALSE
#> 6 2014 2 19 FALSE
我想做一个线性插值,只要标志列中有相应的 TRUE 值,c 列中的值就通过对它之前和之后的值进行平均来插值。例如因为值 26 具有 TRUE 标志,所以我希望将其替换为 11 和 13 的平均值,即 12。 我尝试编写一个函数,但在面板数据设置中正确实现它有点麻烦。
【问题讨论】:
标签: r dplyr interpolation panel