ctree是否忽略具有非语法名称的变量?

ctree是否忽略具有非语法名称的变量?,r,party,ctree,R,Party,Ctree,我想知道partkykit::ctree函数是否忽略了具有非语法名称的变量,或者我是否遗漏了什么 玩具示例: myData<-data.frame( Y = factor(rep(LETTERS[1:3], each=10)), x1 = 1:30, x2 = c(1:10,2:11,3:12) ) 但当我将其名称更改为非语法名称时,它似乎在树构造过程中被忽略了: myData<-data.frame( Y = factor(rep(LETTERS[1:

我想知道
partkykit::ctree
函数是否忽略了具有非语法名称的变量,或者我是否遗漏了什么

玩具示例:

myData<-data.frame(
   Y = factor(rep(LETTERS[1:3], each=10)),
   x1 = 1:30,
   x2 = c(1:10,2:11,3:12)
 )
但当我将其名称更改为非语法名称时,它似乎在树构造过程中被忽略了:

 myData<-data.frame(
   Y = factor(rep(LETTERS[1:3], each=10)),
   `x 1` = 1:30,
   x2 = c(1:10,2:11,3:12),
   check.names = F
 )
 
ctree(Y~., data=myData)

Model formula:
Y ~ `x 1` + x2

Fitted party:
[1] root: A (n = 30, err = 66,7%) 

Number of inner nodes:    0
Number of terminal nodes: 1

myData感谢您指出这一点。这确实是partykit::ctree中的一个bug,但现在已在版本1.2-11(R-Forge上的当前开发版本)中修复

此外,如果您只想在打印和打印中使用非语法标签,可以使用以下快速而肮脏的解决方法:首先学习具有良好语法名称的数据

myData <- data.frame(
  Y = factor(rep(LETTERS[1:3], each = 10)),
  x1 = 1:30,
  x2 = c(1:10, 2:11, 3:12)
)
ct <- ctree(Y ~ ., data = myData)
然后用于打印和打印

print(ct)
## Model formula:
## Y ~ x1 + x2
## 
## Fitted party:
## [1] root
## |   [2] x 1 <= 10: A (n = 10, err = 0.0%)
## |   [3] x 1 > 10
## |   |   [4] x 1 <= 20: B (n = 10, err = 0.0%)
## |   |   [5] x 1 > 20: C (n = 10, err = 0.0%)
plot(ct)
打印(ct)
##模型公式:
##Y~x1+x2
## 
##第三方:
##[1]根
##|[2]x110
##| |[4]x120:C(n=10,误差=0.0%)
绘图(ct)

不确定此帖子是否与您的问题相关,但可能会有所帮助。几乎!这里提到的方法适用于
party::ctree
,但不适用于
partykit::ctree
names(ct$data)[2] <- "x 1"
print(ct)
## Model formula:
## Y ~ x1 + x2
## 
## Fitted party:
## [1] root
## |   [2] x 1 <= 10: A (n = 10, err = 0.0%)
## |   [3] x 1 > 10
## |   |   [4] x 1 <= 20: B (n = 10, err = 0.0%)
## |   |   [5] x 1 > 20: C (n = 10, err = 0.0%)
plot(ct)