在R中使用字符串表达式创建data.frame
如何从以下字符串创建数据帧:在R中使用字符串表达式创建data.frame,r,string,dataframe,R,String,Dataframe,如何从以下字符串创建数据帧: my_str <- "a=1, b=2" 考虑一下如何轻松地传递形式为my_str的字符串。我强烈建议您不要将代码作为字符串存储在R中。编写R代码几乎总是有更好的方法,不需要解析字符串 但假设你没有其他选择。然后您可以编写自己的解析器,或者使用R的内置解析器。表达式“a=1,b=2”本身在R中没有任何意义(不能用逗号分隔两个“赋值”),因此它只能作为函数的参数 如果要将其包装在data.frame()中,则可以使用paste()生成所需字符串,然后使用par
my_str <- "a=1, b=2"
考虑一下如何轻松地传递形式为
my_str的字符串。我强烈建议您不要将代码作为字符串存储在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
my_str我强烈建议您不要将代码作为字符串存储在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
my_str