如何从表达式创建 data.frame?

How to create a data.frame from expression?

我想从保存到对象中的表达式创建数据框。

而这有效:

library(dplyr)

regular_chr_vec <- c(a = "lion", b = "zebra")
bind_rows(regular_chr_vec)

##   a     b    
##   <chr> <chr>
## 1 lion  zebra

这不是:

library(rlang)

as_expression_vec <- parse_expr("c(a = \"lion\", b = \"zebra\")")
bind_rows(!!!as_expression_vec)

Error: Argument 1 must be a data frame or a named atomic vector.

也不是这个:

as_expression_vec <- parse_expr("c(a = \"lion\", b = \"zebra\")")
bind_rows(!!as_expression_vec)

Error: Can't use !! in a non-quoting function


所以我的问题是:如果我刚收到 as_expression_vec,我该如何创建数据框?

##   a     b    
##   <chr> <chr>
## 1 lion  zebra

我故意将问题保持在最低限度,并且没有上下文,以免分散注意力。谢谢!

这是一种解决方案

library(rland)
library(dplyr)

as_expression_vec <- parse_expr("c(a = \"lion\", b = \"zebra\")")

bind_rows(eval(as_expression_vec))

# A tibble: 1 x 2
  a     b    
  <chr> <chr>
1 lion  zebra