繁体   English   中英

R.从插值中获取值

[英]R. Taking values from interpolation

我想一次从插值中获取许多值。 例如,从我的数据文件('int.txt')中,我有对应于每个“ depth1”的每个“ conc1”(例如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的数据创建两列? 我可以将这两列添加到我的数据'int'吗? 在这种情况下,新列的最后一行将没有任何值。 2.我还有一个x,y向量(y = conc2,x = depth2)。 我在每个“ depth2”处都有每个“ conc2”,并且“ depth2”没有规则的间隔,所以就像1.3、2.7、3.2 ...在这里,在上面进行插值后,我想提取所有对应的“ conc1”值“ depth2”。 请让我知道该怎么做。 非常感谢您的帮助 :)

roxfun()会生成一个在给定的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))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM