3

ggplot2を使用して (by)プロットのリストを作成しています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))    
}                 

これをデータ フレームのリストでループします。リスト内の 2 つのデータ フレームの例を次に示します。

$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 に答える