繁体   English   中英

R中的组内插/外推

[英]Interpolation/extrapolation by group in R

我有这种类型的数据库,其中包含按国家和年份划分的变量 x1 和 x2 的数据。

iso3   year  x1 x2
ATG    2010    NA    NA
ATG    2011    NA    NA
ATG    2012   144   277
ATG    2013    45    NA
ATG    2014    NA    NA
ATG    2015    NA    NA
ATG    2016    45    NA
ATG    2017    NA    NA
ATG    2018    NA   421
BEL    2010    NA   434
BEL    2011    NA   422
BEL    2012    NA   424
BEL    2013   282   429
BEL    2014    NA   435
BEL    2015    NA   NA
BEL    2016    NA   NA
BEL    2017   282   429
BEL    2018    NA   435

我想在观察点和外推之间进行线性插值,假设趋势平坦(在第一个观察点之前和最后一个观察点之后)。 我尝试了以下...没有成功。

hwf_2000 <- uhc_hwf %>%
  group_by(iso3)%>%
  na.approx(uhc_hwf)

我收到此错误消息:

Error in na.approx.default(., uhc_hwf) : 
  x and index must have the same length

能否请你帮忙?

非常感谢,

我们可以将na.approx用于多个变量,其中na.rm = FALSE用于插值和 @G。 Grothendieck 评论了在na.approx使用rule = 2进行外推。

library(dplyr)
library(zoo)

df %>% 
  group_by(iso3)%>% 
  mutate_at(vars(x1, x2), list(inter = ~na.approx(., na.rm = FALSE), 
                               outer = ~na.approx(., rule = 2, na.rm = FALSE)))


#   iso3   year    x1    x2 x1_inter x2_inter x1_outer x2_outer
#   <fct> <int> <int> <int>    <dbl>    <dbl>    <dbl>    <dbl>
# 1 ATG    2010    NA    NA       NA       NA      144      277
# 2 ATG    2011    NA    NA       NA       NA      144      277
# 3 ATG    2012   144   277      144      277      144      277
# 4 ATG    2013    45    NA       45      301       45      301
# 5 ATG    2014    NA    NA       45      325       45      325
# 6 ATG    2015    NA    NA       45      349       45      349
# 7 ATG    2016    45    NA       45      373       45      373
# 8 ATG    2017    NA    NA       NA      397       45      397
# 9 ATG    2018    NA   421       NA      421       45      421
#10 BEL    2010    NA   434       NA      434      282      434
#11 BEL    2011    NA   422       NA      422      282      422
#12 BEL    2012    NA   424       NA      424      282      424
#13 BEL    2013   282   429      282      429      282      429
#14 BEL    2014    NA   435      282      435      282      435
#15 BEL    2015    NA    NA      282      433      282      433
#16 BEL    2016    NA    NA      282      431      282      431
#17 BEL    2017   282   429      282      429      282      429
#18 BEL    2018    NA   435       NA      435      282      435

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM