无法获取data.tree工作?

时间:2017-08-28 04:00:58

标签: r tree

我正在尝试使用data.tree examples

中的以下代码
> 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")

1 个答案:

答案 0 :(得分:0)

您正在遍历所有节点,包括根节点,其中没有成本。根据data.tree文档:

  

成本,仅适用于叶节点。项目成本。

因此,乘法将不起作用。值得庆幸的是,filterFun参数允许您指定将函数仅应用于叶节点,如下所示。

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

您现在可以成功打印expectedCost。

另请注意,根节点没有“p”的值。