在plyr::ldply中从purrr::map-like获取命名列表

在plyr::ldply中从purrr::map-like获取命名列表,r,plyr,tidyverse,R,Plyr,Tidyverse,如何从purr::map获取命名列表,与使用plyr::dlply相同?我在这里提供reprex。可以看出,plyr::ldply返回一个命名列表,而purr::map不返回。我还检查了2年前()的一个类似问题,但这没有多大帮助,因为在数据框架内的列表列上没有使用purr::map,这就是我想要做的 库(tidyverse) 图书馆(plyr) #使用purrr创建绘图列表 绘图列表\u purrr% dplyr::分组依据(.data=,物种)%>% tidyr::嵌套(数据=)%>% dpl

如何从
purr::map
获取命名列表,与使用
plyr::dlply
相同?我在这里提供reprex。可以看出,plyr::ldply返回一个命名列表,而
purr::map
不返回。我还检查了2年前()的一个类似问题,但这没有多大帮助,因为在数据框架内的列表列上没有使用
purr::map
,这就是我想要做的

库(tidyverse)
图书馆(plyr)
#使用purrr创建绘图列表
绘图列表\u purrr%
dplyr::分组依据(.data=,物种)%>%
tidyr::嵌套(数据=)%>%
dplyr::突变(
.数据=。,
绘图=数据%>%purrr::map(
.x=。,
.f=~ggplot2::ggplot(
数据=。,
映射=aes(x=萼片长度,y=萼片宽度)
)+geom_点()+geom_平滑(method=“lm”)
)
)
#请参见图的名称
名称(绘图列表\u purrr$绘图)
#>空的
#使用plyr创建绘图列表
绘图列表_plyr[1]“setosa”“versicolor”“virginica”
由(v0.2.0)于2018年3月22日创建

我正试图摆脱
plyr
,完全依赖脚本中的
tidyverse
,但我可以用
plyr
做的一些事情,我仍在试图弄清楚如何使用
purr
实现它们,这就是其中之一。

你可以试试

library(tidyverse)
my_way <- iris %>%
  group_by(Species) %>%
  nest() %>%
  mutate(plots= data %>%  
                  map(~ggplot(., aes(x= Sepal.Length, y= Sepal.Width)) +
                        geom_point() + 
                        geom_smooth(method= "lm"))) %>% 
  mutate(plots= set_names(plots, Species))

my_way
# A tibble: 3 x 3
Species      data              plots   
<fct>        <list>            <list>  
1 setosa     <tibble [50 x 4]> <S3: gg>
2 versicolor <tibble [50 x 4]> <S3: gg>
3 virginica  <tibble [50 x 4]> <S3: gg>

names(my_way$plots)
[1] "setosa"     "versicolor" "virginica" 
库(tidyverse)
我的路%
组别(种类)%>%
嵌套()%>%
突变(图=数据%>%
图(~ggplot(,aes(x=萼片长度,y=萼片宽度))+
几何点()
几何平滑(method=“lm”))%%>%
变异(图=设置名称(图、物种))
我的路
#一个tibble:3x3
物种数据图
1刚毛
2花色
3弗吉尼亚州
名称(my_way$plots)
[1] “维吉尼亚”“杂色”“刚毛”

在绘制地图之前,只需使用
purrr::设置名称(物种)

库(plyr)
图书馆(tidyverse)
#使用purrr创建绘图列表
绘图列表\u purrr%
dplyr::分组依据(.data=,物种)%>%
tidyr::嵌套(数据=)%>%
dplyr::突变(
.数据=。,
绘图=数据%>%
purrr::集合_名称(物种)%>%
purrr::map(
.x=。,
.f=~ggplot2::ggplot(
数据=。,
映射=aes(x=萼片长度,y=萼片宽度)
)+geom_点()+geom_平滑(method=“lm”)
)
)
#请参见图的名称
名称(绘图列表\u purrr$绘图)
#>[1]“刚毛”“花色”“弗吉尼亚”

由(v0.2.0)于2018年3月22日创建。

Try
my_way%split(.$Species)%%>%map(~ggplot(,mapping=aes(x=萼片长度,y=萼片宽度))+geom_point()+geom_smooth(method=“lm”);名字(我的方式)
@Jimbou不错!但如果可能的话,我希望在数据帧内完成这项工作。我会等着看其他人是否有其他的解决方案。