从已知数据中估算缺失的年份

时间:2018-02-03 19:04:01

标签: r

我在r中有一个数据集,如下所示:

# A tibble: 6 x 10
   FIPS GEOID        County_Name         sk09 skimp10 skimp11 skimp12 skimp13     sk2014 skimp15
  <int> <chr>              <chr>        <chr>   <dbl>   <dbl>   <dbl>   <dbl>      <dbl>   <dbl>
1  1001 01001 Autauga County, AL -0.326729733      NA      NA      NA      NA -0.6310033      NA
2  1003 01003 Baldwin County, AL -0.422958353      NA      NA      NA      NA -0.5553960      NA
3  1005 01005 Barbour County, AL -1.196517104      NA      NA      NA      NA -0.8910361      NA
4  1007 01007    Bibb County, AL -0.951096825      NA      NA      NA      NA -0.9065815      NA
5  1009 01009  Blount County, AL -1.303935099      NA      NA      NA      NA -1.0132797      NA
6  1011 01011 Bullock County, AL  -0.10070437      NA      NA      NA      NA -0.5024002      NA

其中我的每个变量都是连续的一年(sk09 = 2009,skimp10 = 2010,skimp11 = 2011等)。我正在寻找一种方法来根据我所拥有的年份来估算我没有的变量。我看过MICE包和predict()函数,但似乎都不是我正在寻找的。这是否存在?

1 个答案:

答案 0 :(得分:0)

您可以像这样进行简单的线性插值:

SKdat$skimp10 = (4*SKdat$sk09  +   SKdat$sk2014)/5
SKdat$skimp11 = (3*SKdat$sk09  + 2*SKdat$sk2014)/5
SKdat$skimp12 = (2*SKdat$sk09  + 3*SKdat$sk2014)/5
SKdat$skimp13 = (SKdat$sk09    + 4*SKdat$sk2014)/5
SKdat$skimp15 = (-1*SKdat$sk09 + 6*SKdat$sk2014)/5

数据

SKdat = read.table(text="FIPS GEOID        County_Name         sk09 skimp10 skimp11 skimp12 skimp13     sk2014 skimp15
1  1001 01001 'Autauga County, AL' -0.326729733      NA      NA      NA      NA -0.6310033      NA
2  1003 01003 'Baldwin County, AL' -0.422958353      NA      NA      NA      NA -0.5553960      NA
3  1005 01005 'Barbour County, AL' -1.196517104      NA      NA      NA      NA -0.8910361      NA
4  1007 01007    'Bibb County, AL' -0.951096825      NA      NA      NA      NA -0.9065815      NA
5  1009 01009  'Blount County, AL' -1.303935099      NA      NA      NA      NA -1.0132797      NA
6  1011 01011 'Bullock County, AL'  -0.10070437      NA      NA      NA      NA -0.5024002      NA",
header=TRUE, stringsAsFactors=FALSE)