【发布时间】:2020-06-19 19:33:19
【问题描述】:
我正在尝试通过多组插值来估算缺失值 NA。
我只是子集一个简单的例子:
Year ST CC ID MP PS
2002 15 3 3 NA 1.5
2003 15 3 3 NA 1.5
2004 15 3 3 193 1.5
2005 15 3 3 193 1.5
2006 15 3 3 348 1.5
2007 15 3 3 388 1.5
2008 15 3 3 388 1.5
1999 53 33 1 NA 3.4
2000 53 33 1 NA 3.4
2002 53 33 1 NA 2.9
2003 53 33 1 NA 2.6
2004 53 33 1 NA 2.6
2005 53 33 1 170 3.8
2006 53 33 1 170 3.0
2007 53 33 1 330 4.2
2008 53 33 1 330 5.0
我使用了na.approx(),但弄错了。似乎我的数据在每组的第一次观察中缺少价值。
setDT(dt)[, MP_interpolate := na.approx(MP, na.rm = T), .(Year, ST, CC, ID)]
setDT(dt)[, MP_interpolate := if(length(na.omit(MP))<2) MP else na.approx(MP, na.rm=TRUE), .(Year, ST, CC, ID)]
我也试过包imputeTS,但没用。
两者都不正确。这是否意味着使用插值来估算缺失不是一个好主意?
我不确定哪种插补方式更好(不想使用mean 或median)。我正在考虑使用PS 趋势来估算MP。 (只是我的想法,不是问题)
【问题讨论】:
标签: r data.table data-manipulation missing-data imputets