如何使用lapply或apply函数族来调用R中函数内的函数?

时间:2018-06-05 15:53:50

标签: r apply lapply mapply tapply

如何使用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

任何帮助将不胜感激。谢谢

1 个答案:

答案 0 :(得分:3)

为避免混淆,最好进行匿名函数调用

lapply(z, function(x) hrat(x, drat))