对R中y(x)函数的算术运算

时间:2012-01-17 14:13:33

标签: r operator-overloading arithmetic-expressions

假设我们的数据框f包含两列xy,其中f$x中的所有值都按升序排列。我们可以将它视为函数y(x)。

我想对像数学意义上的函数这样的数据帧执行算术运算。例如:

# f1 stores points of y1(x)
# f2 stores points of y2(x)
f3 <- 2*f1 + 3*f2
# now f3 stores points of y3(x) = 2*y1(x) + 3*y2(x)

如果x数组对于所有函数都相同,则没有问题,但在我的情况下,它们可以表示具有不同点密度的不同范围

所以我需要在定义两个函数的区间内工作并进行插值(线性足够)以获得已知点之间的函数值。

是否有任何已经实施的软件包?

1 个答案:

答案 0 :(得分:2)

动物园图书馆有一个简单的样条曲线插值函数,它可能很有用。这将允许具有相似的范围。

library(zoo)
my.df <-matrix(c(1:5,NA),ncol=2,nrow=15)
na.spline(my.df)

          [,1]     [,2]
 [1,] 1.000000 4.000000
 [2,] 2.000000 5.000000
 [3,] 3.000000 2.767553
 [4,] 4.000000 1.000000
 [5,] 5.000000 2.000000
 [6,] 3.002711 3.000000
 [7,] 1.000000 4.000000
 [8,] 2.000000 5.000000
 [9,] 3.000000 2.997556
[10,] 4.000000 1.000000
[11,] 5.000000 2.000000
[12,] 3.017224 3.000000
[13,] 1.000000 4.000000
[14,] 2.000000 5.000000
[15,] 3.000000 5.932149