简体   繁体   English

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

[英]How to create a data.frame from expression?

I want to create a data frame from an expression saved into an object.我想从保存到 object 中的表达式创建一个数据框。

Whereas this works:而这有效:

library(dplyr)

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

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

This doesn't:这不会:

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.错误:参数 1 必须是数据帧或命名的原子向量。

Nor this:也不是这个:

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

Error: Can't use !!错误:无法使用!! in a non-quoting function在非引用 function


So my question is: How can I create a dataframe if I'm just handed with as_expression_vec ?所以我的问题是:如果我刚刚收到 as_expression_vec ,如何创建as_expression_vec

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

I intentionally kept the question minimal and with no context to not distract the point.我故意将问题保持在最小限度,并且没有上下文以免分散注意力。 Thanks!谢谢!

Here is one solution这是一种解决方案

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM