给出固定空间的R样条函数

时间:2014-02-04 03:31:58

标签: r space spline

所以,我需要生成一个样条函数将它输入另一个程序,该程序只接受连续点之间的固定空间。因此,我使用R中的样条函数给定生成样条的点数,但是,浮点截止值使得点之间的空间可变,例如:

spline(d$V1, d$V2, n=(max(d$V1)-min(d$V1))/0.0200)

> head(t.spl, 7)
      x      y
1 2.3000 -3.0204
2 2.3202 -3.0204
3 2.3404 -3.0204
4 2.3606 -3.0204
5 2.3807 -3.0204
6 2.4009 -3.0204
7 2.4211 -3.0204

因此,第1行和第2行之间的空间为0.0202,而第4行和第5行之间的空间为0.0201。因此,由于这个问题,我正在为此样条函数提供的另一个程序,不接受这个。那么,有没有办法使这项工作?

2 个答案:

答案 0 :(得分:2)

顺便说一句:请在下次提供可重现的示例(我无法复制/粘贴您的代码,因为我没有dt.spl

我认为您会发现不同的间隔(0.0202对0.0201)是您在屏幕上打印的字符数的假象,而不是样条函数。

似乎R在小数点后面打印4位数字,为了整洁,所以它只是为了显示结果而进行舍入。 您可以查看options('digits')$digits显示的位数,并使用options(digits=new_number_of_digits)进行调整(有关详情,请参阅?options)。

例如:

options(digits=4)
pi
# 3.142
options(digits=10)
pi
# 3.141592654

总之,当您将值输入到其他程序时,请确保打印具有足够小数点的值,以便其他程序接受间隔为“相等”。

例如,如果您要写入文件,请确保写出足够的数字。如果您是从R控制台进行复制粘贴,请确保调整 R 以打印出足够的数字。

答案 1 :(得分:1)

MathematicalCoffee可能是对的。我只是为了冗长而添加一个替代方案。

myspline <- splinefun(dV$1,dV$2)

mydata.y <- myspline(desired_x_values,deriv=0)

将保证您想要的均匀x间距。