如何在R中使用purrr :: map()

时间:2018-04-20 09:00:27

标签: r dplyr purrr

最近我知道map包中的purrr函数非常强大,并试图在下列情况下找出如何使用它:

使用iris数据集并使用purrr::map函数,为所有变量maxmean,{{计算minSepal.LengthSepal.Width 1}},Petal.Length,分别用于每个Petal.Width(setosa,versicolor,virginica)。然后将结果放入具有

的列表中
  • 字符:物种名称和
  • 四个向量:Speciesmaxmean minSepal.LengthSepal.WidthPetal.Length

有什么建议吗?我使用Petal.Width,但结果格式不是我想要的。

dplyr::mutate

使用iris %>% group_by(Species) %>% summarise(MinSL=min(Sepal.Length), MaxSL=max(Sepal.Length), MeanSL=mean(Sepal.Length), MinPL=min(Petal.Length), MaxPL=max(Petal.Length), MeanPL=mean(Petal.Length)) 执行任务是否存在解决方案也很好。谢谢!

1 个答案:

答案 0 :(得分:0)

你不需要咕噜咕噜。尝试:

iris %>%
  group_by(Species) %>%
  summarise_at(vars(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width),
               c("min", "max", "mean"))

输出

# A tibble: 3 x 13
  Species    Sepal.Length_min Sepal.Width_min Petal.Length_min Petal.Width_min
  <fct>                 <dbl>           <dbl>            <dbl>           <dbl>
1 setosa                 4.30            2.30             1.00           0.100
2 versicolor             4.90            2.00             3.00           1.00 
3 virginica              4.90            2.20             4.50           1.40 
# ... with 8 more variables: Sepal.Length_max <dbl>, Sepal.Width_max <dbl>,
#   Petal.Length_max <dbl>, Petal.Width_max <dbl>, Sepal.Length_mean <dbl>,
#   Sepal.Width_mean <dbl>, Petal.Length_mean <dbl>, Petal.Width_mean <dbl>