在我的函数式编程中,我目前使用以下代码片段为函数体生成代码。
i <- 4
paste("x.", i, " <- state", sep = "")
这将创建代码
x.4 <- state
.现在,我想更改为 bquote()
,但我不知道创建这个代码片段。一种i <- 4
bquote(x..(i) <- state)
失败,因为点。
我使用点来分隔更高的阶,例如
x.12.4
.所有其他分隔符,如 _
或 -
不允许出现在变量名中。你有什么想法吗,或者用点是不可能的?
最佳答案
我可能会使用 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()
做。
关于r - 使用 bquote 创建带点的变量名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16238086/