如何命名group_split创建的列表而不中断管道

如何命名group_split创建的列表而不中断管道,r,dplyr,R,Dplyr,我的问题基本上是个问题,但我想在不破坏管道的情况下实现它 为了做到这一点,我试着听从老师的建议。但是,它不起作用。这是我的密码: iris %>% group_by(Species) %>% { {. %>% group_keys() -> tmp} } %>% group_split() 有人能帮我指出正确的方向吗?您可以在管道中包括组键(),如下所示: library(dplyr) iris %>%

我的问题基本上是个问题,但我想在不破坏管道的情况下实现它

为了做到这一点,我试着听从老师的建议。但是,它不起作用。这是我的密码:

iris %>%
group_by(Species) %>%
      {
        {. %>% group_keys() -> tmp}
      } %>% 
      group_split()

有人能帮我指出正确的方向吗?

您可以在管道中包括
组键()
,如下所示:

library(dplyr)

iris %>%
  group_by(Species) %>%
  {setNames(group_split(.), group_keys(.)[[1]])}
输出

$setosa
#一个tibble:50x5
萼片。长萼片。宽花瓣。长花瓣。宽种
1 5.1 3.5 1.4 0.2刚毛
2 4.9 3 1.4 0.2刚毛
3 4.7 3.2 1.3 0.2刚毛
4.6 3.1 1.5 0.2刚毛
5 3.6 1.4 0.2刚毛
6 5.4 3.9 1.7 0.4刚毛
7.4.6 3.4 1.4 0.3刚毛
8 5 3.4 1.5 0.2刚毛
9.4.2.9 1.4 0.2刚毛
10 4.9 3.1 1.5 0.1刚毛
#…还有40行
$versicolor
#一个tibble:50x5
萼片。长萼片。宽花瓣。长花瓣。宽种
1 7 3.2 4.7 1.4彩色
2 6.4 3.2 4.5 1.5彩色
3.6.9 3.1 4.9 1.5彩色
4 5.5 2.3 4 1.3彩色
5.6.5 2.8 4.6 1.5彩色
6.5.7 2.8 4.5 1.3彩色
7.6.3.3 4.7 1.6彩色
8.4.9 2.4 3.3 1彩色
9.6.6 2.9 4.6 1.3彩色
10 5.2 2.7 3.9 1.4版本颜色
#…还有40行
$virginica
#一个tibble:50x5
萼片。长萼片。宽花瓣。长花瓣。宽种
1 6.3 3.3 6 2.5弗吉尼亚州
2 5.8 2.7 5.1 1.9弗吉尼亚州
3 7.1 3 5.9 2.1弗吉尼亚州
4.6.3 2.9 5.6 1.8弗吉尼亚州
5 6.5 3 5.8 2.2弗吉尼亚州
6 7.6 3 6.6 2.1弗吉尼亚州
7 4.9 2.5 4.5 1.7弗吉尼亚州
8 7.3 2.9 6.3 1.8弗吉尼亚州
9 6.7 2.5 5.8 1.8弗吉尼亚州
10 7.2 3.6 6.1 2.5弗吉尼亚州
#…还有40行

名称关于
iris%>%group\u split(Species)%%>%setNames(unique(iris$Species))
。这样行吗?请注意,Ronak评论中的解决方案可能会导致错误匹配。尝试
iris$Species
$setosa
# A tibble: 50 x 5
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species
          <dbl>       <dbl>        <dbl>       <dbl> <fct>  
 1          5.1         3.5          1.4         0.2 setosa 
 2          4.9         3            1.4         0.2 setosa 
 3          4.7         3.2          1.3         0.2 setosa 
 4          4.6         3.1          1.5         0.2 setosa 
 5          5           3.6          1.4         0.2 setosa 
 6          5.4         3.9          1.7         0.4 setosa 
 7          4.6         3.4          1.4         0.3 setosa 
 8          5           3.4          1.5         0.2 setosa 
 9          4.4         2.9          1.4         0.2 setosa 
10          4.9         3.1          1.5         0.1 setosa 
# … with 40 more rows

$versicolor
# A tibble: 50 x 5
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species   
          <dbl>       <dbl>        <dbl>       <dbl> <fct>     
 1          7           3.2          4.7         1.4 versicolor
 2          6.4         3.2          4.5         1.5 versicolor
 3          6.9         3.1          4.9         1.5 versicolor
 4          5.5         2.3          4           1.3 versicolor
 5          6.5         2.8          4.6         1.5 versicolor
 6          5.7         2.8          4.5         1.3 versicolor
 7          6.3         3.3          4.7         1.6 versicolor
 8          4.9         2.4          3.3         1   versicolor
 9          6.6         2.9          4.6         1.3 versicolor
10          5.2         2.7          3.9         1.4 versicolor
# … with 40 more rows

$virginica
# A tibble: 50 x 5
   Sepal.Length Sepal.Width Petal.Length Petal.Width Species  
          <dbl>       <dbl>        <dbl>       <dbl> <fct>    
 1          6.3         3.3          6           2.5 virginica
 2          5.8         2.7          5.1         1.9 virginica
 3          7.1         3            5.9         2.1 virginica
 4          6.3         2.9          5.6         1.8 virginica
 5          6.5         3            5.8         2.2 virginica
 6          7.6         3            6.6         2.1 virginica
 7          4.9         2.5          4.5         1.7 virginica
 8          7.3         2.9          6.3         1.8 virginica
 9          6.7         2.5          5.8         1.8 virginica
10          7.2         3.6          6.1         2.5 virginica
# … with 40 more rows