diff --git a/DESCRIPTION b/DESCRIPTION index 49f92c88cc..d4493a2b46 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -28,6 +28,7 @@ Imports: lifecycle (>= 1.0.3), magrittr (>= 1.5), methods, + palmerpenguins, pillar (>= 1.9.0), R6, rlang (>= 1.1.3), diff --git a/R/arrange.R b/R/arrange.R index 4afa2a72ce..706937a4d6 100644 --- a/R/arrange.R +++ b/R/arrange.R @@ -59,14 +59,21 @@ #' help page under the `Default locale` section. #' @family single table verbs #' @examples -#' arrange(mtcars, cyl, disp) -#' arrange(mtcars, desc(disp)) +#' data("penguins", package = "palmerpenguins") #' -#' # grouped arrange ignores groups -#' by_cyl <- mtcars %>% group_by(cyl) -#' by_cyl %>% arrange(desc(wt)) +#' # Arrange by increasing order +#' penguins %>% arrange(bill_depth_mm) +#' penguins %>% arrange(bill_depth_mm, body_mass_g) +#' +#' # Mix sorting by increasing and decreasing order +#' penguins %>% arrange(bill_depth_mm, desc(body_mass_g)) +#' +#' # Grouped arrange ignores groups +#' by_species <- penguins %>% group_by(species) +#' by_species %>% arrange(desc(flipper_length_mm)) + #' # Unless you specifically ask: -#' by_cyl %>% arrange(desc(wt), .by_group = TRUE) +#' by_species %>% arrange(desc(flipper_length_mm), .by_group = TRUE) #' #' # use embracing when wrapping in a function; #' # see ?rlang::args_data_masking for more details @@ -74,11 +81,12 @@ #' .data %>% #' arrange({{ var }}) #' } -#' tidy_eval_arrange(mtcars, mpg) +#' tidy_eval_arrange(penguins, bill_length_mm) #' #' # Use `across()` or `pick()` to select columns with tidy-select -#' iris %>% arrange(pick(starts_with("Sepal"))) -#' iris %>% arrange(across(starts_with("Sepal"), desc)) +#' penguins %>% arrange(pick(contains("depth"))) +#' penguins %>% arrange(across(ends_with("mm"), desc)) +#' arrange <- function(.data, ..., .by_group = FALSE) { UseMethod("arrange") } diff --git a/dplyr.Rproj b/dplyr.Rproj index 4d650df928..be4b0046d2 100644 --- a/dplyr.Rproj +++ b/dplyr.Rproj @@ -1,4 +1,5 @@ Version: 1.0 +ProjectId: 0223743b-bfb8-4b54-bb6c-1b278ea360c9 RestoreWorkspace: Default SaveWorkspace: Default diff --git a/man/arrange.Rd b/man/arrange.Rd index d004c2e303..78359ed833 100644 --- a/man/arrange.Rd +++ b/man/arrange.Rd @@ -79,14 +79,23 @@ The following methods are currently available in loaded packages: } \examples{ -arrange(mtcars, cyl, disp) -arrange(mtcars, desc(disp)) +# Load the 'penguins' data set from {palmerpenguins} package (R < 4.5.0) +data("penguins") -# grouped arrange ignores groups -by_cyl <- mtcars \%>\% group_by(cyl) -by_cyl \%>\% arrange(desc(wt)) +# Arrange by increasing order of bill depth +penguins \%>\% arrange(bill_depth_mm) + +# Arrange by increasing order of bill depth and body mass +penguins \%>\% arrange(bill_depth_mm, body_mass_g) + +# Arrange by increasing order of bill depth and decreasing order of body mass +penguins \%>\% arrange(bill_depth_mm, desc(body_mass_g)) + +# Grouped arrange ignores groups +by_species <- penguins \%>\% group_by(species) +by_species \%>\% arrange(desc(flipper_length_mm)) # Unless you specifically ask: -by_cyl \%>\% arrange(desc(wt), .by_group = TRUE) +by_species \%>\% arrange(desc(flipper_length_mm), .by_group = TRUE) # use embracing when wrapping in a function; # see ?rlang::args_data_masking for more details @@ -94,11 +103,12 @@ tidy_eval_arrange <- function(.data, var) { .data \%>\% arrange({{ var }}) } -tidy_eval_arrange(mtcars, mpg) +tidy_eval_arrange(penguins, bill_length_mm) # Use `across()` or `pick()` to select columns with tidy-select -iris \%>\% arrange(pick(starts_with("Sepal"))) -iris \%>\% arrange(across(starts_with("Sepal"), desc)) +penguins \%>\% arrange(pick(contains("depth"))) +penguins \%>\% arrange(across(ends_with("mm"), desc)) + } \seealso{ Other single table verbs: