如何在lapply的每次迭代中使用基于向量的不同参数?

时间:2014-04-08 18:35:33

标签: r lapply

我有一个向量列表,我正在 lapplying 函数lines来绘制列表中每个元素的内容。示例代码如下:

l <- list()
for(i in 1:10){l[[i]] <- rnorm(10)}
plot(l[[1]], t='n')
lapply(l, lines)

有没有办法告诉lapply每个元素使用不同的参数,例如颜色或线型,这样我就可以轻松地将我想要的相应特征归因于列表的每个元素?例如,我想要一个与列表中特定元素匹配的颜色矢量。

2 个答案:

答案 0 :(得分:0)

我想出了和jlhoward一样的lapply方法。这是一个根据平均值是否大于零来对线进行着色的示例:

lapply(l, function(line) {lines(line, col=ifelse(mean(line) > 0, 'red', 'blue'))})

也就是说,您的示例使用循环来创建示例数据。如果您的实际代码使用循环,为什么不将每一行绘制为数据生成循环的一部分?这样,您可以按行计算所需的任何绘图参数。通常,我不提倡在apply函数上循环--R在循环中真的很慢!但除非你正在绘制成千上万行,否则你可能不会注意到性能受到很大影响。 (另外,请记住,lapply方法将为每条线绘制返回NULL值...这有点尴尬。)

答案 1 :(得分:0)

我发现mapply是要走的路