【发布时间】:2018-11-15 04:32:48
【问题描述】:
如何使用 lapply 或一系列 apply 函数在函数内调用函数?
我有一个父函数(即hrat),它在其中调用一个姊妹函数(即drat)。我想将此函数应用于某个向量。我正在提供一个代码来演示我的逻辑。我收到以下错误消息。
代码:
drat <- function(y){
x <- y * 5
return(x)
}
hrat <- function(z, j, drat){
y <- z +1
w <- drat(y) + j
return(w)
}
z <- c(1:5)
j <- 4
result <- lapply(z,j, function(x) hrat(x, drat(x)))
错误信息:
Error in get(as.character(FUN), mode = "function", envir = envir) :
object 'j' of mode 'function' was not found
任何帮助将不胜感激。谢谢
【问题讨论】:
-
您只是颠倒了论点。
lapply(z, hrat, drat)有效。第二个参数是你要调用的函数,额外的参数被传递给那个函数。
标签: r apply lapply mapply tapply