如何从以下字符串创建数据框:
my_str <- "a=1, b=2"
换句话说,我如何将y提供给data.frame或data.table函数,以便它为我提供与
相同的功能。data.frame(a=1, b=2)
考虑如何通过简单地使用my_str <- "y~x1+x2+x3"
轻松地将表格as.formula(my_str)
的字符串传递到R中的统计模型,并有效地删除引号。所以我正在寻找类似的解决方案。
谢谢!
答案 0 :(得分:3)
我强烈反对您将代码存储为R中的字符串。几乎总有更好的方法来编写不需要解析字符串的R代码。
但我们假设您没有其他选择。然后你可以编写自己的解析器,或使用R的内置解析器。它本身的表达式“a = 1,b = 2”在R中没有任何意义(你不能用逗号分隔两个“赋值”)所以它只作为函数的参数才有意义。
如果您想将其打包在data.frame()
中,那么您可以使用paste()
制作所需的字符串,然后使用parse()
,最后eval()
来运行它< / p>
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