我正在嘗試使用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