在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不错!但如果可能的话,我希望在数据帧内完成这项工作。我会等着看其他人是否有其他的解决方案。