lapply
を使用して同様の関数のリストを作成しようとすると、リストのすべての関数が同じで、最終要素がどのようなものであるかがわかります。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) '? – Roland
Ross Ihaka(RCore)のこれらのメモは役立つかもしれません(特にレイジー評価についての部分)www.stat.auckland.ac.nz/~ihaka/downloads/Waikato-WRUG.pdf –
これはもはやR 3.2.0、以下の私の答えを見てください。 – jhin