首页 > 解决方案 > Dplyr中的for循环

问题描述

我有一个代码如下。首先代码应该基于然后作为结果运行dplyr::arrange(desc(sum.total))dplyr::arrange(desc(sum.mpg)) 想要一个数据框/数据表。提前谢谢了

head(mtcars)

my.mtcars <- mtcars %>%
  dplyr::group_by(gear)%>%
  dplyr::summarise(
    sum.total = n(),
    sum.mpg = sum(mpg))%>%
  dplyr::arrange(desc(sum.total)) # Run me first
  #dplyr::arrange(desc(sum.mpg))  # Second Dont run the line above but this

预期答案

#with dplyr::arrange(desc(sum.total))
gear sum.total sum.mpg

1     3        15    242.
2     4        12    294.
3     5         5    107.
#with dplyr::arrange(desc(sum.mpg))
gear sum.total sum.mpg

1     4        12    294.
2     3        15    242.
3     5         5    107.

标签: rfor-loopdplyrdata-manipulation

解决方案


my.mtcars <- mtcars %>%
  dplyr::group_by(gear)%>%
  dplyr::summarise(
    sum.total = n(),
    sum.mpg = sum(mpg)
lapply(c('sum.total', 'sum.mpg'), function(var) arrange(my.mtcars, desc(.data[[var]])))

推荐阅读