3

我正在创建一个地块列表(由ggplot2)使用lapply

假设我有这个功能

plot <- function(x){
  ggplot(x,aes(x=timepoints,means)) + 
       geom_point() + 
       geom_line() +
       scale_x_continuous(name='some name') +
       scale_y_continuous(name='another name') +
       geom_errorbar(aes(ymin=means-stderrs,ymax=means+stderrs),width=2) + 
       opts(title = names(x))    
}                 

我将通过数据框列表循环它,这是列表中两个数据框的示例:

$name1

   means    stderrs        timepoints
1  603.784863 289.952382       0
2  120.00     99.000           20
$name2
   means   stderrs
1  17.425819  5.204339         0
2  25.9       8.0              20

我的问题:names(x)我的 ggplot 函数的一部分将每个绘图命名为“意思”,而不是函数所在的数据框的实际名称(例如 name1、name2)list[[i]],我想要那个实际数据框的名称,这将是names(list[i])

问题:可以这么说,有没有办法引用列表中的外层?或者有没有更简单的方法来获取这些带有各自名称的地块的列表?

4

1 回答 1

3

它不漂亮,但它有效。

plot2 <- function(x, title){
  ggplot(x,aes(x=timepoints,means)) + 
      geom_point() + 
      geom_line() +
      scale_x_continuous(name='some name') +
      scale_y_continuous(name='another name') +
      geom_errorbar(aes(ymin=means-stderrs,ymax=means+stderrs),width=2) + 
      opts(title = title)
}

lapply(names(your_list), function(x) plot2(your_list[[x]], x))
于 2012-08-16T21:44:23.343 回答