在我的函数式编程中,我目前使用以下代码片段为函数体生成代码。
i <- 4
paste("x.", i, " <- state", sep = "")
这会创建代码x.4 <- state
。现在,我想更改为bquote()
,但我不知道要创建此代码段。甲
i <- 4
bquote(x..(i) <- state)
失败,因为有点。
我使用点来分隔更高级的订单,例如x.12.4
。变量名中不允许使用_
或-
等所有其他分隔符。
你是否有想法,或者点数不可能?
答案 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()
所做的事情。