R:我可以使用Reduce(或其他高级功能)执行以下操作吗?

use*_*259 4 functional-programming r

我有一个函数,它将数据帧和其他参数作为输入,这些参数确定数据帧的某种类型的更改.举个简单的例子:

col_with_ones <- function(df, col_name) {
  df[[col_name]] <- 1
  df
}
Run Code Online (Sandbox Code Playgroud)

有没有办法可以使用Reduce(或任何其他"高级"功能)将多个更改应用于数据帧?例如,继续上面的例子,我可以Reduce用来做以下事情:

df <- data.frame(a = runif(10))
for (letter in letters[2:5]) {
  df <- col_with_ones(df, letter)
}
Run Code Online (Sandbox Code Playgroud)

干杯

flo*_*del 8

很简单:

Reduce(col_with_ones, letters[2:5], init = df)
Run Code Online (Sandbox Code Playgroud)