首页 文章

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

提问于
浏览
0

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

使用虹膜数据集并使用 purrr::map 函数,分别为所有变量 Sepal.LengthSepal.WidthPetal.LengthPetal.Width 计算 maxmeanmin ,每个 Species (setosa,versicolor,virginica) . 然后将结果放入列表中

  • 一个字符:物种名称,和

  • 四个向量: maxmeanmin for Sepal.LengthSepal.WidthPetal.LengthPetal.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))

如果有一个使用 dpylr 的解决方案来完成任务也会很好 . 谢谢!

1 回答

  • 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>
    

相关问题