# Attach packages
library(rearrr)
library(dplyr)
# Roll vector left
roll_elements(1:10, n = 2)
# Roll vector right and return the vector
roll_elements_vec(1:10, n = -2)
# Roll vector left by median index (rounded to 6)
roll_elements(3:12, n_fn = median_index)
# Roll vector right by median value (rounded to 8)
roll_elements(3:12, n_fn = create_n_fn(median, negate = TRUE))
# Pass extra arguments (here 'prob') to 'n_fn' via '...'
roll_elements(
1:10,
n_fn = quantile_index,
prob = 0.2
)
#
# Roll data.frame
#
# Set seed
set.seed(1)
# Create a data frame
df <- data.frame(
"x" = 1:20,
"y" = runif(20) * 10,
"g" = rep(1:4, each = 5)
)
# Roll rows left/up
roll_elements(df, n = 2)
# Roll rows right/down
roll_elements(df, n = -2)
# Roll 'x' column right/down
roll_elements(df, cols = "x", n = -2)
# Roll rows right by median index in each group
# Specify 'negate' for the 'median_index' function
roll_elements(
df %>% dplyr::group_by(g),
n_fn = median_index,
negate = TRUE
)
Run the code above in your browser using DataLab