a=parse(text="ar1 = 0") > b=expre-6ren">
gpt4 book ai didi

r - "parse"和 "expression"之间的区别

转载 作者:行者123 更新时间:2023-12-02 00:57:05 32 4
gpt4 key购买 nike

我发现用“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 都是 "expression(ar1 = 0) ",但是没有办法查询 a 的元素 ar1,我想转换 >a 格式化b,任何人都可以帮助我,我会很感激。

最佳答案

尽管 parse 返回一个 expression,但结构与由 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")

我们注意到 str(b) 有一个 name 属性。我们也可以尝试给 a 一个:

> a <- structure(parse(text="0"), .Names = "ar1")
> a$ar1
[1] 0

关于r - "parse"和 "expression"之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53538189/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com