3

我想创建一系列 xy 散点图,其中 y 始终是同一个变量,x 是我要检查它们是否相关的变量。作为一个例子,让我们使用mtcars数据集。

我对 R 比较陌生,但越来越好。

下面的代码有效,列表图表包含所有图表,除了 X 轴显示为“x”,我希望它是变量的名称。我尝试了很多组合,xlab=但我似乎没有得到它

如果我使用names(data),我会看到我想使用的名称。我想我想引用第names(data)一次迭代的第一次apply,第二次第二次,等等。我该怎么做?

下一步是将它们打印在一个格子中,我假设一个lapplysapply将使用打印功能来解决问题 - 我也很欣赏这个想法,只是我不需要解决方案的指针。

load(mtcars)
   mypanel <- function(x,y,...) {
   panel.xyplot(x,data[,y],...)
   panel.grid(x=-1,y=-1)
   panel.lmline(x,y,col="red",lwd=1,lty=1)
   } 
   data <- mtcars[,2:11]
   charts <- apply(data,2,function(x) xyplot (mtcars[,1] ~ x, panel=mypanel,ylab="MPG")) 

这一切都始于我无法使用面板功能循环。

4

1 回答 1

3

我没有发现这段代码“有效”。修改它这样做:

mypanel <- function(x,y,...) {
   panel.xyplot(x, y, ...)
   panel.grid(x=-1, y=-1)
   panel.lmline(x,y,col="red",lwd=1,lty=1)
   } 
data <- mtcars[,2:11]
charts <- lapply(names(data), function(x) { xyplot (mtcars[,1] ~ mtcars[,x], 
                                               panel=mypanel,ylab="MPG", xlab=x)})

需要从面板函数中删除 'data[,y]' 并传递名称而不是列向量,因此有一些东西可用于 x-label。

于 2013-01-15T01:37:24.917 回答