【问题标题】:How to use lapply or a family of the apply function for calling a function within a function in R?如何使用 lapply 或一系列 apply 函数在 R 中的函数中调用函数?
【发布时间】: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


【解决方案1】:

为了避免混淆,最好有匿名函数调用

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

【讨论】:

  • 很抱歉,我只需要添加现在出现问题的额外对象。添加对象j后,不喜欢了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-14
  • 1970-01-01
  • 2015-01-22
  • 1970-01-01
  • 1970-01-01
  • 2022-03-28
相关资源
最近更新 更多