使用bquote创建带点的变量名

时间:2013-04-26 13:46:10

标签: r functional-programming

在我的函数式编程中,我目前使用以下代码片段为函数体生成代码。

i <- 4
paste("x.", i, " <- state", sep = "")

这会创建代码x.4 <- state。现在,我想更改为bquote(),但我不知道要创建此代码段。甲

i <- 4
bquote(x..(i) <- state)

失败,因为有点。

我使用点来分隔更高级的订单,例如x.12.4。变量名中不允许使用_-等所有其他分隔符。

你是否有想法,或者点数不可能?

1 个答案:

答案 0 :(得分:3)

我可能会使用substitute()

i <- 4
substitute(XX <- state, list(XX = as.name(paste0("x.", i))))
# x.4 <- state

使用bquote(),您可以执行以下操作:

with(list(XX=as.name(paste0("x.", i))), bquote(.(XX) <- state))
# x.4 <- state

但在任何一种情况下,您都需要从"x."i构建名称,因为这不是bquote()所做的事情。