想象一下这段代码:
mtcars %>%
group_split(cyl) %>%
map(select, mpg, disp, hp) %>%
`names<-`(c(4, 6, 8)) %>%
map(cor)
列表元素的名称是根据变量的值设置的cyl
,根据该变量将数据分为三组。
现在想象将所有这些传递给corrplot
:
mtcars %>%
group_split(cyl) %>%
map(select, mpg, disp, hp, cyl) %>%
`names<-`(c(4, 6, 8)) %>%
map(cor) %>%
map(corrplot)
效果很好。现在,该corrplot
函数有一个title
参数,用于在绘图上打印标题。我希望从用于创建绘图的列表元素的名称中提取每个绘图的标题 - 换句话说,cyl
就是前面提到的变量的那些值。我怎样才能做到这一点?我试过这样做:
mtcars %>%
group_split(cyl) %>%
map(select, mpg, disp, hp) %>%
`names<-`(c(4, 6, 8)) %>%
map(cor) %>%
map(corrplot, title = names(.))
但这只是打印图表上的所有名称,而不仅仅是当前元素中的名称。
如果您有解决方案,我将不胜感激。在不破坏管道的情况下,因为我可以很容易地找到破坏管道的解决方法。
我们可以使用imap/iwalk
而不是map
library(dplyr)
library(purrr)
library(corrplot)
mtcars %>%
group_split(cyl) %>%
map(select, mpg, disp, hp) %>%
`names<-`(c(4, 6, 8)) %>%
map(cor) %>%
imap(~ corrplot(.x, title = .y))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句