Как использовать lapply или семейство функции apply для вызова функции внутри функции в R? - PullRequest
0 голосов
/ 05 июня 2018

Как использовать 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 голосов
/ 05 июня 2018

Чтобы избежать путаницы, лучше иметь анонимный вызов функции

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