我正在尝试使用mapply函数创建一个等值线图。我是R的新手,我已经阅读了其他人的帖子,我还没有得到mapply函数的本质。我被困在以下问题。使用mapply的问题
我有一个函数px(它有2个参数)返回一个值。我正在尝试使用draw.graph函数来绘制轮廓图,该函数将采用2个序列(n1,n2)作为参数。但是,我不断收到一个错误,说轮廓()中的z不是矩阵。
我试图使用浏览器(),并意识到执行mapply()后,我没有得到一个矩阵。所以我的问题是我怎么能在这种情况下使用mapply功能的矩阵? 如果可能的话,有人能指出我在代码中犯的错误吗? 我一直得到以下错误:
Error in contour.default(n1, n2, y) : no proper 'z' matrix specified
# This function returns a value only
px <- function(mu.a, mu.b)
{
#Note that x is just a vector in this context. specified
# outside the function. Since it is very long, I want specify it here.
n1 <- dnorm(x, mean = mu.a, sd = 0.3)
n2 <- dnorm(x, mean = mu.b, sd = 0.3)
pxd<- 0.7 * n1 + (1-0.7) * n2
return
{
prod(pxd)
}
}
#I am trying to generate a contour plot below of the function px.q3 with
# arguments n1,n2, which will be sequences
draw.graph <- function(n1,n2)
{
y <- mapply(px,n1,n2)
browser()
contour(n1,n2,y)
}
draw.graph(seq(1.0,1.6,0.01),seq(2.4,3,0.01))
My aim of the draw.graph function is to get a contour plot as a function mu.a(i.e. n1) and mu.b(i.e. n2) <- 2 sequences.
您没有给出'dnorm'和'x'值。问题不在于'mapply',而在于你定义了'px'。 – joran
...和'px'有另一个_big_语法错误,您的代码甚至永远不会到达。 – joran
..._ and_当你解决所有这些问题时,你将会遇到'mapply'问题,它不会返回一个矩阵。您必须自己构建矩阵,然后将其传递给“轮廓”。 – joran