如何从表达式创建 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
我想从保存到对象中的表达式创建数据框。
而这有效:
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