R:如何在多个维度中使用近似值(多维插值)?

R:如何在多个维度中使用近似值(多维插值)?,r,R,这应该不难,但我搜索了很多,到目前为止还没有找到解决方案 我正在处理一些零散的数据 y = f(x1,x2,x3,..., xn) 我想创建一个查找函数,当输入数据集中的向量x时,该函数为我提供y的确切已知值,但当向量x不在数据集中时,它会线性插值 基本上类似于approx(),但用于更高数量的维度 为了简化任何试用,以下是一些数据: y<-rnorm(27) x1<-seq(1,3,1) x2<-seq(10,30,10) x3<-seq(100,300,100)

这应该不难,但我搜索了很多,到目前为止还没有找到解决方案

我正在处理一些零散的数据

y = f(x1,x2,x3,..., xn)
我想创建一个查找函数,当输入数据集中的向量
x
时,该函数为我提供
y
的确切已知值,但当向量
x
不在数据集中时,它会线性插值

基本上类似于
approx()
,但用于更高数量的维度

为了简化任何试用,以下是一些数据:

y<-rnorm(27)
x1<-seq(1,3,1)
x2<-seq(10,30,10)
x3<-seq(100,300,100)

df<-expand.grid(x1,x2,x3)
df<-cbind(y,df)
names(df)<-c("y","x1","x2","x3")

# Task is to create a function like
#   fun(x1,x2,x3) --> interpolated y

# expected output example:
# fun(1,10,100) --> -0.89691454
# fun(1.5,10,100) --> -0.3560327

y“y”不应该是
长度(y)=nrow(展开网格(x1,x2,x3))
?也许,您还可以为
fun
添加一个示例输出?例如,
fun(1,20,100)-->?
fun(1.2,15.45,102)-->?
谢谢你的评论,我添加了一个例子。