4

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

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

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

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

失败,因为点。

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

你有一个想法,还是用这些点是不可能的?

4

1 回答 1

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."and构造名称i,因为这不是这样bquote()做的。

于 2013-04-26T13:56:46.707 回答