我正在尝试在 R 中编写一个函数,它将作为参数、第二个函数及其参数,其中一些是向量。我想要的最终结果是编写一个滚动函数,该函数调用一个函数来作用于时间序列,但是我已经尝试了所有我能想到的“应用”函数排列,但没有成功,因为“应用”函数似乎都逐个元素地将函数应用于向量,我想要将函数作为一个整体应用于向量。例如,
a = c(1,2,3); b = c(4,5,6)
sapply(a,function(x,y,c) c*t(x)%*%y,b,c=2)
[,1] [,2] [,3]
[1,] 8 16 24
[2,] 10 20 30
[3,] 12 24 36
但我真正想要的是:
2*t(a)%*%b
[,1]
[1,] 64
并且能够沿时间序列滚动函数。我还尝试编写一个包含第二个函数及其参数作为参数的通用函数,但我似乎无法让它接受参数。例如,
foo <- function(func,parm){
return(func(parm))
}
foo(function(x,y,c) c*t(x)%*%y,parm=list(a,b,c=2))
Error in c * t(x) %*% y : 'c' is missing
这里的问题是 func 不接受参数列表,但是如何将参数列表传递给函数呢?希望这不会太混乱。感谢您提供的任何帮助。