如何使用dplyr进行编程

Jer*_*oen 8 r cran dplyr

我喜欢dplyr数据操作,但我不明白如何使用它进行编程.例如,要重新调整某些变量,我们可以:

mutate(cars, speed.scaled = scale(speed), dist.scaled = scale(dist))
Run Code Online (Sandbox Code Playgroud)

很酷.但现在假设我想编写一个mutate用于缩放数据框中所有变量的函数.我如何创建...参数?我能想出的最好的事情是:

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))
Run Code Online (Sandbox Code Playgroud)

或者是否有一个更加编程友好的替代界面?

cre*_*tor 4

简单易行:使用mutate_each(cars, funs(scale))apply(cars, 2, scale)