使用具有多变量函数的outer()

Sti*_*ijn 16 r

假设你有一个功能f<- function(x,y,z) { ... }.你会如何将常数传递给一个参数,但让其他参数变化?换句话说,我想做这样的事情:

 output <- outer(x,y,f(x,y,z=2)) 
Run Code Online (Sandbox Code Playgroud)

此代码没有评估,但有没有办法做到这一点?

Bac*_*lin 19

outer(x, y, f, z=2)
Run Code Online (Sandbox Code Playgroud)

该功能后的参数是额外的参数给它,看...在?outer.这种语法在R中很常见,例如整个apply系列的工作方式相同.

更新:

我无法确切地告诉您在后续问题中想要完成什么,但想想这个表单上的解决方案可能就是您应该使用的.

outer(sigma_int, theta_int, function(s,t)
    dmvnorm(y, rep(0, n), y_mat(n, lambda, t, s)))
Run Code Online (Sandbox Code Playgroud)

这将计算每个值组合的方差矩阵,sigma_int并theta_int使用该矩阵定义一个密度并在其中定义的点对其进行评估y.我无法测试它,因为我不知道所涉及的变量的类型和尺寸.