r - 当变量嵌入空格时如何在 R 中使用重新公式

标签 r

当术语标签嵌入空格时,使用 reformulate() 所需的正确字符串解析是什么?

这有效:

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`

注意
我无法对反引号进行硬编码。这是一个更大的 Shiny 应用程序的一部分,因此,如果反引号是答案,我需要一种方法以编程方式执行此操作。

最佳答案

这里有一些使用符号而不是字符串的其他方法(因此不需要显式反引号)。

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

关于r - 当变量嵌入空格时如何在 R 中使用重新公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54774832/

相关文章:

r - 为什么 mean() 这么慢?

apache-flex - 集成 R 和 Flash/Flex 的最佳方式

r - 如何使用公共(public)字符串获取数据框中列的行积

r - 如何根据它们对 R 中所有列的总和的贡献来删除数据框中的列

读取 R 中包含向量 (c(x,y)) 的 .csv

rbindlist data.tables 具有不同列数

r - group_by() 到 fill() 没有按预期工作

r - 增加ggplot2中图例标题和标签之间的空间

r - 如何替换列值以进行同类群组分析

r - 向ggplot2图形添加多个阴影/矩形