Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/64.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 “之间的区别”;解析";及;表达方式;_R - Fatal编程技术网

R “之间的区别”;解析";及;表达方式;

R “之间的区别”;解析";及;表达方式;,r,R,我发现使用“parse”函数解析表达式和使用类“expression”定义表达式之间有区别,下面是代码和结果 > a=parse(text="ar1 = 0") > b=expression(ar1=0) > a expression(ar1 = 0) > b expression(ar1 = 0) > a$ar1 NULL > b$ar1 [1] 0 如代码

我发现使用“parse”函数解析表达式和使用类“expression”定义表达式之间有区别,下面是代码和结果

     > a=parse(text="ar1 = 0")
     > b=expression(ar1=0)
     > a
     expression(ar1 = 0)
     > b
     expression(ar1 = 0)
     > a$ar1
     NULL
     > b$ar1
     [1] 0

如代码所示,虽然ab都是“表达式(ar1=0)”,但无法查询a的元素ar1,我想将a转换为b格式,任何人都可以帮助我,我很感激。

虽然
parse
返回一个
表达式
,但该结构与由
expression()
创建的结构不同

看看
str

> str(a)
length 1 expression(ar1 = 0)
 - attr(*, "srcref")=List of 1
  ..$ :Class 'srcref'  atomic [1:8] 1 1 1 7 1 7 1 1
  .. .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x000000000e0aaa00> 
 - attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x000000000e0aaa00> 
 - attr(*, "wholeSrcref")=Class 'srcref'  atomic [1:8] 1 0 2 0 0 0 1 2
  .. ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x000000000e0aaa00> 
> str(b)
  structure(expression(ar1 = 0), .Names = "ar1")

非常感谢你,J.R,你已经解决了一个困扰我几天的问题,或者从
a
获取数据,我们可以写:
setNames(as.expression(a[[1]][[3]])、as.character(a[[1]][[2]])
,非常感谢添加。重点是ofc。
a的name属性缺失
> a <- structure(parse(text="0"), .Names = "ar1")
> a$ar1
[1] 0