我没有向您显示我的真实代码,因为它很庞大而且很难看。 但我使用了标准的R包重建的问题:如何添加函数参数作为剧情标题与lapply?
# a list of a few r standard datasets
datasets <- list(PlantGrowth, cars, faithful)
# a function that plots a dataset and adds its name to the title
plotstuff <- function(dataset) {
plot_title <- substitute(paste("Plot of ", dataset, sep=" "))
plot(dataset, main = plot_title)
}
数据集(即函数参数)的名称成功添加到情节标题,当我运行像
plotstuff(PlantGrowth)
plotstuff(cars)
plotstuff(faithful)
个别数据集功能
因为我有很多的数据集我想与lapply要做到这一点是这样的:
lapply(datasets, plotstuff)
但在这样做,所以我得到奇怪的标题:地块[ (X,i)而不是数据集的名称。 如何使用lapply在剧情标题中显示数据集的名称?
以下是我能找到的唯一相关主题。 (而且它并没有真正帮助...)
Use variable name as plot title with lapply
编辑: 谢谢! 但我似乎并不了解另一个例子。
“的列表项的名称lapply使用,而不是:”
lapply(names(afn), function(x) plot(afn[[x]], main=x))
首先,我加名添加到列表:
datasets <- list(PlantGrowth = PlantGrowth, cars = cars, faithful = faithful)
然后我想:
plotstuff <- function(dataset) {
chart_title <- substitute(paste("Plot of ", dataset, sep=" "))
plot(datasets[[dataset]], main = chart_title)
}
lapply(names(datasets), plotstuff)
没有工作......我也不想引用函数内部的列表数据集。如果我想稍后用另一个名字来使用第二个列表呢? 有人知道这个例子的解决方案吗?
您的列表没有名字,所以也没有办法了'lapply'可能认识他们。尝试'名称(数据集)'。为了比较,“L = list(a = 1,b = 2)”。 – Frank
为列表命名,然后使用链接的副本作为指导。 –
谢谢!做到了。我仍然卡住(见编辑)... –