我想立即从插值中获取许多值。 例如,从我的数据文件('int.txt')中,我每个“conc1”对应于每个“depth1”(例如,1.1米,2.1米,3.1米,4.1米,5.1米,6.1米)。 / p>
这里,在插入我的浓度数据后,我想在1.2,2.2,3.2,4.2,5.2米的“深度”处取“浓度” 以下评论(我正在编辑我的问题),我制作了这样的代码,
f = approxfun(depth1, conc1, rule=1,method='linear', xout=seq(1.2,5.2,1.0))
i<-approx(depth1, conc1, rule=1,method='linear', xout=seq(1.2,5.2,1.0))
效果很好。在这里,我还有两个问题。 那么,我怎么能用i的数据制作两列?我可以将这两列添加到我的数据'int'中吗?在这种情况下,我将在新列的最后一行没有值。 我还有一个x,y向量(y = conc2,x = depth2)。我在每个“depth2”都有“conc2”,而“depth2”没有规则的间隔,所以它就像1.3,2.7,3.2 ......这里,在上面插值之后,我想提取所有相应的“conc1”值“深度2”。 请让我知道如何做这些事情。非常感谢你的帮助:))
答案 0 :(得分:0)
approxfun()生成一个在给定的x和y向量之间插值的函数。您可以在向量上调用该函数以立即进行多次近似。您可以进行多种自定义(例如简单的插值方法以及在数据范围之外的操作),但这应该让您开始,直到您指定需要更复杂的东西。
?approxfun
f = approxfun(x=c(1.1, 2.1, 3.1, 4.1, 5.1),y=c(1, 3, 5, 2, 4),rule=1,method='constant')
plot(y=f(seq(1.1,5.1,.1)),x=seq(1.1,5.1,.1))
f = approxfun(x=c(1.1, 2.1, 3.1, 4.1, 5.1),y=c(1, 3, 5, 2, 4),rule=1,method='linear')
plot(y=f(seq(1.1,5.1,.1)),x=seq(1.1,5.1,.1))