reformulate()
当termlabel具有嵌入式空格时,需要使用什么适当的字符串解析?
这有效:
reformulate(c("A", "B"), "Y")
Y ~ A + B
这些都失败了:
reformulate(c("A var", "B"), "Y")
reformulate(quote(c("A var", "B")), "Y")
reformulate(as.formula(quote(c("A var", "B"))), "Y")
预期成绩:
Y ~ `A var` + B
# or
Y ~ `A var` + `B`
注意
我不能对反引号进行硬编码。这是较大的闪亮应用程序的一部分,因此,如果答案是反引号,则我需要一种以编程方式进行此操作的方法。
这是使用符号而不是字符串的其他几种方式(因此不需要显式的反引号)。
input <- "A var"
eval(bquote( Y ~ .(as.name(input)) + B))
# Y ~ `A var` + B
eval(substitute( Y ~ INPUT + B, list(INPUT = as.name(input))))
# Y ~ `A var` + B
library(rlang)
eval(expr(Y ~ !!sym(input) + B))
# Y ~ `A var` + B
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句