R df通过函数列表中提供的不同函数处理每个列

R df通过函数列表中提供的不同函数处理每个列,r,R,我想我的问题很简单,但我还没有在网上找到解决办法。 我想用一组函数修改数据框。 这些函数在列表中定义。它们可能有多个参数,但一个参数始终是df中相关列上的值。 我使用内置BOD数据集只是为了方便。清单可以是: funs <- list( fn1 = function(x) x+1, fn2 = function(x) x-1 ) 因此,修改后,时间列值加1,需求列值减1。您可以使用sapply更灵活 funs <- list( fn1 = fun

我想我的问题很简单,但我还没有在网上找到解决办法。 我想用一组函数修改数据框。 这些函数在列表中定义。它们可能有多个参数,但一个参数始终是df中相关列上的值。 我使用内置BOD数据集只是为了方便。清单可以是:

funs <- list(
        fn1 = function(x) x+1,
        fn2 = function(x) x-1
)

因此,修改后,时间列值加1,需求列值减1。

您可以使用
sapply
更灵活

funs <- list(
  fn1 = function(x) x+1,
  fn2 = function(x) x-1               
)

searchedFunc <- function(df, fns) {
  sapply(seq(along.with=fns), function(i) fns[[i]](df[, i]))
}

searchedFunc(BOD, funs)

funs参见
?mapply
<代码>映射层(函数(f,x)f(x),函数,BOD)
funs <- list(
  fn1 = function(x) x+1,
  fn2 = function(x) x-1               
)

searchedFunc <- function(df, fns) {
  sapply(seq(along.with=fns), function(i) fns[[i]](df[, i]))
}

searchedFunc(BOD, funs)