【发布时间】:2020-01-28 12:03:52
【问题描述】:
我正在绘制 2 组数据 (x,y) 和 (a,b)。对于 (x,y),x 轴的间隔为 0.05,对于 (a,b),x 轴的间隔为 0.02。我正在尝试对 (x,y) 进行插值,以便它每 0.02 个单位填充一次数据。我玩过 approxfun() 和 splinefun() 但不知道如何正确使用 n 或 xout 参数。
require(graphics)
x<-c(1.00,1.05,1.10,1.15,1.20)
y<-c(4.1,6.4,8.4,5.2,0.5)
a<-c(1.00,1.02,1.04,1.06,1.08)
b<-c(5.0,8.3,7.3,4.0,6.0)
par(mfrow = c(2,1))
plot(x,y)
points(approx(x,y,method="linear"),col=2,pch="*")
plot(a,b)
最终我希望我的所有向量都有一个 0.02 的 x 间隔,就像 (a,b) 这样我所有的向量都具有相同数量的元素,并将新向量保存到一个变量中。我还希望能够从 0.02 切换回 0.05,我认为这将涉及相同的命令但切换间隔?我认为我想要做的是将我的数据重新采样到一个新的频率。
我已经在各种线程中寻找答案,但我对 R 的了解还不够,无法弄清楚如何询问/搜索它。感谢您的帮助。
【问题讨论】:
-
我不确定我是否完全遵循,但
approx(x, y, method="linear", xout=seq(min(x),max(x),by=0.02))是否满足您的需求? -
嗨@thelatemail,是的,这是我在重新采样到新频率时所需要的。当我试图保持 (x,y) 和 (a,b) 之间的向量大小相同时,我需要查看如何处理原始预插值数据的约定。谢谢!
标签: r interpolation