r - 如何用R对数据进行插值?

标签 r dataframe interpolation

我有一个如下所示的数据框:

z <- data.frame(ent = c(1, 1, 1, 2, 2, 2, 3, 3, 3), 
                year = c(1995, 2000, 2005, 1995, 2000, 2005, 1995, 2000, 2005), 
                pobtot = c(50, 60, 70, 10, 4, 1, 100, 105, 110))

如您所见,每个 ent 之间存在 5 年的差距。我想将数据插值到每个缺失的年份:1996、1997、1998、1999、2001、2002、2003、2004,并预测 2006、2007 和 2008。有没有办法做到这一点?

如有任何帮助,我们将不胜感激。

最佳答案

我们可以使用 complete 扩展每个“ent”和“year”范围的数据,然后使用 na.approx 插入“pobtot”中缺失的值

library(dplyr)
library(tidyr)
z %>% 
   complete(ent, year = 1995:2008) %>% 
   mutate(pobtot = zoo::na.approx(pobtot, na.rm = FALSE))

关于r - 如何用R对数据进行插值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67553006/

相关文章:

python - 创建空数据框并向其中添加行

python - 使 Daily pandas DataFrame 接收与 Weekly (resampled) DataFrame 相同的值

java - 用于上采样的 PCM 算法

json - 写入/读取递归结构 S4 对象

r - 将带有字符和数字的数据排序为R中的数字

python - 如何从 pandas 中的列表创建接触点 DataFrame

python - 由两个散点曲面之间的交点定义的曲线,以不同方式采样

python - scipy.interpolate.griddata 和 scipy.interpolate.Rbf 之间的区别

RStudio 未找到 RTools

r - 对列值大于阈值的行进行子集化