2017-06-12 6 views
0

nodeapply(info_node)関数からの情報を抽出しようとしています。(partykit-Nodeapply-Info_node)を使用して、関数内の情報を追加する

リストの情報をノードIDに抽出して後で処理できるように、プロセスを自動化したいと考えています。

次のように例:私はノードのシリーズから情報を抽出する関数を作成するノード上で5

のレコード数を抽出するために、上記のコードを使用し

data("cars", package = "datasets") 
ct <- ctree(dist ~ speed, data = cars) 

node5 <-nodeapply(as.simpleparty(ct), ids = 5, info_node) 
node5$`5`$n 

infonode <- function(x,y){ 
    for (j in x){ 
    info = nodeapply(y, j, info_node) 
    print(info$`j`$n) 
    } 
} 

結果は常にnullに戻ります。

"J"のタイプが印刷でヌル読み取りにつながる関数内で間違っているのだろうかと思います。

誰かが私を助けることができたら、それは非常に感謝します!

おかげ

答えて

0

あなたはnodeapply()idsのリストを与え、その後、単一の要素が抽出されますと、リストが、選択したすべてのノードのリストだけではできません。これはあなたの質問の唯一のpartykit特有の部分です。

それ以降は、Rの標準的な名前付きリストで操作しているだけで、何もせずにpartykitと書かれています。あなたがinfo[[1]]$nまたはinfo[[as.character(j)]]$nいずれかによってinfo$ J $nを置き換えることができ、あなたのinfonode()機能に

node5[[1]]$n 
## n 
## 19 
node5[["5"]]$n 
## n 
## 19 

したがって、:あなたの問題を解決するには、簡単に整数または文字インデックスを持ついずれか[[インデックスではなく、$インデックスを使用することができます。

しかし、私は単純にsapply()でこれを行うだろう:

ni <- nodeapply(as.simpleparty(ct), ids = 3:5, info_node) 
sapply(ni, "[[", "n") 
## 3.n 4.n 5.n 
## 15 16 19 

それとも、このいくつかのバリエーションを...

+0

ありがとうございました!これはうまくいくので、私は助けに十分にあなたに感謝できません!心から感謝する! –

関連する問題