函数内部的dplyr:当函数和colname是参数时,将函数应用于列

时间:2016-03-11 13:25:03

标签: r dplyr

我正在尝试编写一个接受列名和(​​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命令链。

1 个答案:

答案 0 :(得分:2)

为什么需要dplyr?

MyFunction <- function(df, colname, fun)
{
     df[[colname]] <- fun(df[[colname]])
     df
}
相关问题