gpt4 book ai didi

r - 通过其内存地址获取对象

转载 作者:行者123 更新时间:2023-12-04 14:59:03 25 4
gpt4 key购买 nike

我正在尝试找到在R中创建链接列表的方法。

我发现tracemem()返回对象的内存地址,所以有什么办法可以通过对象的内存地址找到对象?

最佳答案

那不是做到这一点的方法。如果要引用,请使用引用类或环境。像这样:

首先,我要在链接列表中放入三个对象:

> e1=new.env()
> e2=new.env()
> e3=new.env()

用数据项和指向列表中下一个的指针进行初始化
> with(e1,{data=99;nextElem=e2})
> with(e2,{data=100;nextElem=e3})
> with(e3,{data=1011;nextElem=NA})

现在,给定环境的函数将返回链表中的下一个:
> nextElem = function(e){with(e,nextElem)}

因此,让我们从某种环境 e开始:
> e=e1
> with(e,data)
[1] 99

要获取列表中下一项的值:
> with(nextElem(e),data)
[1] 100

并且为了证明事情是通过引用完成的,让我们更改e2:
> with(e2,{data=555})

并且 e的下一项也已更改:
> with(nextElem(e),data)
[1] 555

引用类应使其更简洁一些,但需要一些计划。

试图通过它们的内存位置获取R对象是行不通的。

关于r - 通过其内存地址获取对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21965665/

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