我正在尝试编写一个接受列名和(n匿名)函数作为参数的函数。该函数应使用dplyr
通过应用函数来改变由列名标识的列。
例如,如果按以下方式使用,该函数应该改变a
的{{1}}列。
data
我想出了下面的代码,但我无法弄清楚如何构建data <- tbl_df(data.frame(a = 1:5, b = 1:5))
MyFunction(data, 'a', function(x) as.character(as.integer((x)))
:
fun.call
我该如何做到这一点?
我想使用MyFunction <- function(df, colname, fun) {
fun.call <- ???
df %>%
... other dplyr commands ...
mutate_(.dots = setNames(fun.call, colname)
... other dplyr commands ...
}
,因为我的真实世界函数包含更长的dplyr命令链。
答案 0 :(得分:2)
为什么需要dplyr?
MyFunction <- function(df, colname, fun)
{
df[[colname]] <- fun(df[[colname]])
df
}