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.