r之Latticeplot 中的一些奇怪的东西

zlslch 阅读:100 2024-02-27 23:08:18 评论:0

我的笔记本电脑的基本信息:

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”存在且有效!

如果我按预期使用 y 而不是 z 运行脚本,则会绘制两个图形并排绘制(代码有效)。这里发生了什么?

请您参考如下方法:

面板函数通过坐标 xy,来自符号 y ~ x。因此,您根据这些参数而不是传递给这些参数的您自己的数据对象的名称来编写面板函数。然后就可以了:

x <- rnorm (100) 
z <- x + rnorm(100) 
f <- gl(2,50,labels =c("Groups 1" , "Groups 2")) 
df <- data.frame(x = x, z = z, f = f) ## I prefer objects in data frames 
xyplot (z ~ x | f, data = df, 
    panel = function (x, y, ...) { 
      panel.xyplot(x, y, ...) 
      panel.abline(h = median(y), 
                   lty=2 
                   ) 
    }) 


标签:程序员
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号