我正在尝试将自定义函数应用于数据帧的每个值。以下是自定义函数和数据帧:
#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))