我想在mapply中将一个函数名作为参数传递:
最后一个
f2 <- function(a, b) a + b^2
f <- function(a, b, func) func(a, b)
f(1, 3, f2) ## returns 10
mapply(f2, 1:2, 3) ## returns [1] 10 11
mapply(function(a, b) f(a, b, f2), 1:2, 3) ## returns [1] 10 11
mapply(f, 1:2, 3, f2) ## fails
最后一个
mapply
调用会出现错误
Error in dots[[3L]][[1L]] : object of type 'closure' is not subsettable
有没有什么办法可以解决这个问题?
x <- data.frame(a=1:2); x$b <- list(mean, sum)
。但这会使诸如write.table
之类的事情混乱,因为您无法将函数写入文本中。函数是极少数不像向量或列表那样隐式行为的东西,需要进行一些包装。 - MrFlick