3
基本信息怪:東西在我的筆記本電腦的Latticeplot
SO: Windows 7 x64
R version 3.0.2 (2013-09-25) -- "Frisbee Sailing"
問題:
當我運行下面的代碼:
x <- rnorm (100)
z <- z + rnorm(100)
f <- gl(2,50,labels =c("Groups 1" , "Groups 2"))
xyplot (z ~ x | f,
panel = function (x, z, ...) {
panel.xyplot(x,z, ...)
panel.abline(h = median(z),
lty=2
)
})
我得到是在控制檯上,但不是沒有錯誤圖表或者,代替圖的接收兩個空圖表盒用此誤差內:
"error using packet 2, argument "z" in missing, with no defaults"
但在環境「Z」存在,它是有效的!
如果我運行Ÿ代替Z該運行腳本預期兩個圖形繪製一個另一邊(代碼工作)。這裏發生了什麼?
這是正確的,很好的解釋。什麼是有點令人驚訝,在我看來,就是可以設置'面板=功能(X,Y = Y,...)'** **或'面板=功能(X,Y = Z,...) ',而且兩者工作同樣好。我不希望第二個工作,但它確實:在提供的面板函數內部放置一個'browser()'調用,即使找到一個正確長度的變量「y」。好奇這裏發生了什麼事。 –
很好的解釋....感謝很多@Gavin。 – Hackerman
@Josh,'function(x,y = y,...)'只適用於晶格明確傳遞'y',所以默認從不使用。如果使用了默認值,它將會是循環引用並失敗。關於'函數(x,y = z,...)''z'同樣從不使用。 –