При попытке создать список похожих функций с помощью lapply
я обнаружил, что все функции в списке идентичны и равны тому, каким должен быть последний элемент.
Рассмотрим следующее:
pow <- function(x,y) x^y
pl <- lapply(1:3,function(y) function(x) pow(x,y))
pl
[[1]]
function (x)
pow(x, y)
<environment: 0x09ccd5f8>
[[2]]
function (x)
pow(x, y)
<environment: 0x09ccd6bc>
[[3]]
function (x)
pow(x, y)
<environment: 0x09ccd780>
Когда вы пытаетесь оценить эти функции, вы получаете идентичные результаты:
pl[[1]](2)
[1] 8
pl[[2]](2)
[1] 8
pl[[3]](2)
[1] 8
Что здесь происходит и как я могу получить желаемый результат (правильные функции в списке)?
pl <- function(x,y) lapply(y,function(y) pow(x,y)); pl(2,1:3)
? - person Roland   schedule 01.04.2013