如何用lapply为图表添加对应列表元素的序号作为标题
解决R中lapply绘图时添加列表元素序号到标题的问题
你可以通过遍历列表的索引来获取每个元素的序号,修改后的代码如下:
mtcar <- mtcars[-11] examples <- list(mtcars, mtcar) lapply(seq_along(examples), function(i) { # 通过索引取出当前列表元素 current_data <- examples[[i]] # 标题中加入序号i plot(density(current_data$mpg), main = paste0('Graph for ', ' (', i, ')')) })
原理说明
原来的lapply仅传递列表中的单个元素x给匿名函数,没有包含元素在列表中的位置信息。改用seq_along(examples)生成从1到列表长度的索引序列,遍历这个序列时,既能通过索引获取对应的数据,又能直接把索引值i用在图表标题里,实现显示序号的需求。
你也可以用mapply来实现,它支持同时传递多个参数(元素和对应的索引):
mtcar <- mtcars[-11] examples <- list(mtcars, mtcar) mapply(function(x, i) { plot(density(x$mpg), main = paste0('Graph for ', ' (', i, ')')) }, examples, seq_along(examples))
内容的提问来源于stack exchange,提问作者12666727b9
相关产品推荐
相关产品推荐

