Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中使用字符串表达式创建data.frame_R_String_Dataframe - Fatal编程技术网

在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