Repeats the same transformations on a specified set of variables/values
Repeats the same transformations on a specified set of variables/values
do_repeat(data, ...) .do_repeat(...) as_is(...)
data |
data.frame/list. If |
... |
stand-in name(s) followed by equals sign and a vector/list of
replacement variables or values. They can be numeric/characters or
variables names. Names at the top-level can be unquoted (non-standard
evaluation). Quoted characters also considered as variables names. To avoid
this behavior use |
There is a special constant .N
which equals to number of
cases in data
for usage in expression inside do_repeat
. Also
there are a variables .item_num
which is equal to the current
iteration number and .item_value
which is named list with current
stand-in variables values.
transformed data.frame data
data(iris) scaled_iris = do_repeat(iris, i = Sepal.Length %to% Petal.Width, { i = scale(i) }) head(scaled_iris) # several stand-in names and standard evaluattion old_names = qc(Sepal.Length, Sepal.Width, Petal.Length, Petal.Width) new_names = paste0("scaled_", old_names) scaled_iris = do_repeat(iris, orig = ((old_names)), scaled = ((new_names)), { scaled = scale(orig) }) head(scaled_iris) # numerics new_df = data.frame(id = 1:20) # note the automatic creation of the sequence of variables new_df = do_repeat(new_df, item = i1 %to% i3, value = c(1, 2, 3), { item = value }) head(new_df) # the same result with internal variable '.item_num' new_df = data.frame(id = 1:20) new_df = do_repeat(new_df, item = i1 %to% i3, { item = .item_num }) head(new_df) # functions set.seed(123) new_df = data.frame(id = 1:20) new_df = do_repeat(new_df, item = c(i1, i2, i3), fun = c("rnorm", "runif", "rexp"), { item = fun(.N) }) head(new_df)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.