繁体   English   中英

如何将自定义 function 应用于 dataframe 中的每个值?

[英]How to apply a custom function to every value in a dataframe?

我正在尝试将自定义 function 应用于 dataframe 的每个值。 这是自定义的 function 和 dataframe:

#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))

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


lapply(df, test_fun(y = 2))

function 是矢量化的,我们可以直接在数据集上应用

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

关于 OP 的错误,如果我们不使用 lambda function,请指定参数为

lapply(df, test_fun, y = 2)

-输出

#$a
#[1] 3 4 5

#$b
#[1] 6 7 8

或者指定 lambda function 然后使用(y = 2)

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM