Vapply命令和mvtnorm

时间:2016-01-17 12:41:22

标签: r apply tapply

我不熟悉R中矢量的函数。 当一些参数根据不同的函数同时改变值时,我想要一个具有不同的二变量概率值的向量。例如:

library(mvtnorm)
m<-2
corr<-diag(2)
corr[2,1]<-0
vapply(2*1:3,function(x) 
pmvnorm(mean=c(2,x),corr,lower=c(-Inf,-Inf), upper=c(1,2)),1)
[1] 7.932763e-02 3.609428e-03 5.024809e-06

当第二次分布的平均值取值为2,4和6时,我有不同的累积概率值。 我的问题是我想要同时改变第一个分布的平均值的值。我无法正确编写具有多个函数的vapply命令。我能做什么? 非常感谢你

1 个答案:

答案 0 :(得分:2)

您需要使用mapply执行此任务

library(mvtnorm)

corr <- diag(2)
m1 <- c(3, 5, 7)
m2 <- c(2, 4, 6)

mapply(function(x, y)
  pmvnorm(mean = c(x, y), corr, lower = c(-Inf, -Inf), upper = c(1, 2)), 
  m1, m2)
## [1] 1.1375e-02 7.2052e-07 3.1246e-14