我正在使用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
我的问题:
我的ggplot函数的names(x)
部分将每个绘图命名为'means',而不是该数据框的实际名称(例如name1,name2)
该函数在list[[i]]
中,我想要实际数据框的名称,即names(list[i])
。
问题: 有没有办法引用列表中的外层,可以这么说?或者是否有更简单的方法来获取这些图表的列表与其各自的名称?
答案 0 :(得分:2)
它不漂亮但它有效。
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))