0

我想一次从插值中获取许多值。例如,从我的数据文件('int.txt')中,我有每个“conc1”对应于每个“depth1”(例如,1.1 m、2.1 m、3.1 m、4.1 m、5.1 m、6.1 m)。

在这里,在插入我的浓度数据后,我想在 1.2、2.2、3.2、4.2、5.2 m 的“深度”处取“conc” 在下面的评论(我正在编辑我的问题)之后,我做了一个这样的代码,

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))

它运作良好。在这里,我还有两个问题。1. 那么,如何用 i 中的数据创建两列?我可以将这两列添加到我的数据中吗?在这种情况下,我将在新列的最后一行没有任何价值。2. 我还有一个 x, y 向量 (y= conc2, x=depth2)。我在每个“depth2”处都有每个“conc2”,而“depth2”没有规则间隔,所以就像1.3、2.7、3.2......这里,在上面插值之后,我想提取所有对应的“conc1”值“深度2”。请让我知道如何做这些事情。非常感谢您的帮助 :)

4

1 回答 1

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))
于 2013-10-28T14:39:51.300 回答