r-如何将自定义函数应用于数据帧中的每个值



我正在尝试将自定义函数应用于数据帧的每个值。以下是自定义函数和数据帧:

#function
test_fun <- function(x, y = 1) {
output <- x + y
output
}
#dataframe
df <- data.frame(a = c(1,2,3), b = c(4,5,6))

现在假设我想将test_fun(y=2(应用于df的每个值。这种方法似乎不起作用:


lapply(df, test_fun(y = 2))

函数是矢量化的,我们可以直接应用于数据集

test_fun(df, y = 2)
#  a b
#1 3 6
#2 4 7
##3 5 8

关于OP的错误,如果我们没有使用lambda函数,请将参数指定为

lapply(df, test_fun, y = 2)

-输出

#$a
#[1] 3 4 5
#$b
#[1] 6 7 8

或者指定lambda函数,然后使用(y = 2)

lapply(df, function(vec) test_fun(vec, y = 2))

最新更新