I like dplyr
for data manipulation, but I don't understand how to use it for programming. For example, to rescale some variables, we could do:
mutate(cars, speed.scaled = scale(speed), dist.scaled = scale(dist))
Very cool. But now suppose I want to write a function that uses mutate
to scale all variables in a data frame. How do I create the ...
argument? The best thing I can come up with is something like:
fnargs <- lapply(names(cars), function(x){call("scale", as.name(x))})
names(fnargs) <- paste0(names(cars), ".scaled")
do.call(mutate, c(.data=as.name("cars"), fnargs))
Or is there an alternative interface that is more programming friendly?