2017-08-28 2 views
1

私はdata.tree例data.treeが正常に動作しませんか?

> data(acme) 
> acme$Do(function(node) node$expectedCost <- node$p * node$cost) 
> print(acme, "expectedCost") 

から次のコードをしようとしていますが、私は警告(エラーに換算)の下に取得しています。

Error in `[<-.data.frame`(`*tmp*`, colName, value = list(`Acme Inc.` = numeric(0), : 
(converted from warning) provided 11 variables to replace 1 variables 

3: ToDataFrameTree(x, format = TRUE, ...) 
2: print.Node(acme, "expectedCost") 
1: print(acme, "expectedCost") 
+0

これは、依存関係の変更によって導入されたエラーです。しかし、私はそれを修正し、あなたの例はCRANの最新のdata.treeバージョンで再び動作するはずです。0.7.3 –

+0

これを修正してくれたChrisに感謝します。 data.treeに新しいことは、レトリックの質問をするのではなく、これを働かせることでした。 – rlpatrao

答えて

0

コストがかからないルートノードを含め、すべてのノードを行き来しています。 data.treeドキュメントのとおり:

コストは、リーフノードでのみ使用できます。プロジェクトのコスト。

このように、乗算は機能しません。ありがたいことに、filterFunパラメータでは、次のように葉ノードのみに関数を適用するように指定することができます。

acme$Do(function(node) node$expectedCost <- node$p * node$cost, filterFun = isLeaf) 

これで、expectedCostを正常に印刷できるようになりました。

また、ルートノードには 'p'の値がありません。

+0

上記の@ripatraoの例は、関数Doの下でpdfパッケージに与えられたものです。なぜ、それらはエラーを生成する例ですか? – Onyambu

+0

@Onyambu:彼らはそれを意図的にしません。しかし、彼らは修辞的な質問にgithubのバグレポートを好むだろう;) –

関連する問題