R - as.formula() 不与 ctree {party} 一起工作?

R - as.formula() not working with ctree {party}?

当我尝试 运行 从 party package 得到 ctree 时,我得到 Error: $ operator not defined for this S4 class,但只有当公式被写为我使用 [ 转换的字符串时=15=].

下面的例子:

#This works fine :
y <- ctree(formula = quotation ~ minute + temp, data=test[[1]], controls = ctree_control(mincriterion = 0.99))

#While this doesn't :
x <- "ctree(formula = quotation ~ minute + temp, data=test[[1]], controls = ctree_control(mincriterion = 0.99))"

y <- as.formula(x)
Error: $ operator not defined for this S4 class

我的最终目的是创建一个遍历列表的函数 test 以创建多棵树。

有什么想法吗?

ctree 是函数而不是公式。 formula 是函数 '~'(代字号)生成的对象的 class。您可以从 help('~')help('formula').

了解有关公式的更多信息

最常见的使用as.formula的方法是将表示公式语法的字符串转换为class公式的对象。像 as.formula('y ~ x') 这样的东西。另外,检查 class(as.formula(y~x)).

在您的例子中,您将表示函数 ctree 的字符串保存到变量 x。函数ctree只包含表示公式语法的字符串(quotation ~ minute + temp)但不能强制转换为公式(它不表示公式,它只是包含公式语法字符串)因为它不遵循公式语法。

如果你想从文本中执行一个函数,你需要使用 eval(parse(text = x)) 尽管不鼓励这种技术..