首页 > 解决方案 > 当 bquote 包含多个表达式时如何删除括号?

问题描述

bquote({
  A <- 4
  print(A)
})

输出:

{
    A <- 4
    print(A)
}

我该怎么做才能使输出变得简单:

A <- 4
print(A)

标签: rmetaprogrammingnon-standard-evaluation

解决方案


正如@G.Grothendieck 在评论中所说,您无法摆脱对象中的括号,但您可以通过以下方式获得该输出:

for (i in 2:3) {
   print(b[[i]])
}

或者,矫枉过正:

class(b) <- "foo"
print.foo <- function(x) for (i in 2:length(x)) print(x[[i]])
b

推荐阅读