mapply 関数を使用して等高線図を作成しようとしています。私はRの初心者です.mapplyに関する他の投稿を読みましたが、mapply関数の本質をまだ理解していません. 次の問題で立ち往生しています。
値を返す関数 px (2 つの引数を受け取る) があります。そして、draw.graph 関数を使用して等高線図を作成しようとしています。この関数は、2 つのシーケンス (n1,n2) を引数として受け取ります。しかし、contour() の z は行列ではないというエラーが表示され続けました。
browser() を使用しようとしましたが、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.