Арифметические операции над функциями y (x) в R - PullRequest
0 голосов
/ 17 января 2012

Предположим, у нас есть фрейм данных f с двумя столбцами x и y, где все значения в 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 Ответ

2 голосов
/ 17 января 2012

В библиотеке зоопарка есть простая функция экстраполяции сплайнов, которая может быть полезна.Это позволило бы иметь аналогичные диапазоны.

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