使用 R 中的字符串表达式创建 data.frame



如何从以下字符串创建数据框:

my_str <- "a=1, b=2"

换句话说,我怎样才能将y输入到data.frame或data.table函数中,以便它给我与

data.frame(a=1, b=2)

考虑如何通过简单地使用 as.formula(my_str) 轻松地将一串形式my_str <- "y~x1+x2+x3"传递到 R 中的统计模型中,并有效地删除引号。所以我正在寻找类似的解决方案。

谢谢!

我强烈建议您不要将代码作为字符串存储在R中。编写不需要分析字符串的 R 代码几乎总是有更好的方法。

但是,让我们假设您没有其他选择。然后你可以编写自己的解析器,或者使用R的内置解析器。表达式"a=1, b=2"本身在 R 中没有任何意义(你不能用逗号分隔两个"赋值"(,所以它只能作为函数的参数有意义。

如果你想用 data.frame() 包装它,那么你可以使用 paste() 制作你想要的字符串,然后parse(),最后eval()它来运行它

my_str <- "a=1, b=2"
my_code <- paste0("data.frame(", my_str, ")")
my_expr <- parse(text=my_code)
eval(my_expr)
#   a b
# 1 1 2

但就像我已经提到的,通常应该避免 eval/parse。

最新更新