使用(partykit-Nodeapply-Info_node)提取函数内的信息
Use (partykit- Nodeapply- Info_node) to extrac information within the function
我正在尝试提取来自 nodeapply( info_node) 函数的信息。
我想使该过程自动化,以便我可以提取节点 ID 列表的信息并稍后对其进行操作。
示例如下:
data("cars", package = "datasets")
ct <- ctree(dist ~ speed, data = cars)
node5 <-nodeapply(as.simpleparty(ct), ids = 5, info_node)
node5$`5`$n
我使用上面的代码提取节点 5 上的记录数。
我想创建一个函数来从一系列节点中提取信息:
infonode <- function(x,y){
for (j in x){
info = nodeapply(y, j, info_node)
print(info$`j`$n)
}
}
但是返回的结果总是 null。
我想知道 "J" 的类型是否在导致打印中读取空值的函数中是错误的。
如果有人能帮助我,将不胜感激!
谢谢
您可以给 nodeapply()
一个 ids
的列表,然后不仅会提取具有单个元素的列表,还会提取所有选定节点的列表。这是您问题中唯一 partykit
特定的部分。
从那时起,它只是在 R 中的标准命名列表上运行,没有任何 partykit
具体说明。要解决您的问题,您可以轻松地使用 [[
索引而不是 $
索引,使用整数或字符索引:
node5[[1]]$n
## n
## 19
node5[["5"]]$n
## n
## 19
因此,在您的 infonode()
函数中,您可以将 info$
j$n
替换为 info[[1]]$n
或 info[[as.character(j)]]$n
.
但是,我会简单地使用 sapply()
:
ni <- nodeapply(as.simpleparty(ct), ids = 3:5, info_node)
sapply(ni, "[[", "n")
## 3.n 4.n 5.n
## 15 16 19
或者这个的一些变体...
我正在尝试提取来自 nodeapply( info_node) 函数的信息。
我想使该过程自动化,以便我可以提取节点 ID 列表的信息并稍后对其进行操作。
示例如下:
data("cars", package = "datasets")
ct <- ctree(dist ~ speed, data = cars)
node5 <-nodeapply(as.simpleparty(ct), ids = 5, info_node)
node5$`5`$n
我使用上面的代码提取节点 5 上的记录数。
我想创建一个函数来从一系列节点中提取信息:
infonode <- function(x,y){
for (j in x){
info = nodeapply(y, j, info_node)
print(info$`j`$n)
}
}
但是返回的结果总是 null。
我想知道 "J" 的类型是否在导致打印中读取空值的函数中是错误的。
如果有人能帮助我,将不胜感激!
谢谢
您可以给 nodeapply()
一个 ids
的列表,然后不仅会提取具有单个元素的列表,还会提取所有选定节点的列表。这是您问题中唯一 partykit
特定的部分。
从那时起,它只是在 R 中的标准命名列表上运行,没有任何 partykit
具体说明。要解决您的问题,您可以轻松地使用 [[
索引而不是 $
索引,使用整数或字符索引:
node5[[1]]$n
## n
## 19
node5[["5"]]$n
## n
## 19
因此,在您的 infonode()
函数中,您可以将 info$
j$n
替换为 info[[1]]$n
或 info[[as.character(j)]]$n
.
但是,我会简单地使用 sapply()
:
ni <- nodeapply(as.simpleparty(ct), ids = 3:5, info_node)
sapply(ni, "[[", "n")
## 3.n 4.n 5.n
## 15 16 19
或者这个的一些变体...