gpt4 book ai didi

r - 为 R 中对象的插槽创建别名

转载 作者:行者123 更新时间:2023-12-04 09:38:01 25 4
gpt4 key购买 nike

我曾试图为复杂对象的子部分创建一个别名(又名指针,或在内存中指定同一对象而不复制该对象的新简称)。假设我正在使用 SpatialPolygonsDataFrame 类(包“sp”)的对象,并且我想对其一部分执行操作,深入到该对象的层次表示中。而不是重复写这样的东西

myBigMap@polygons[FRA][[1]]@Polygons[[1]]

我希望能够简单地写作

mypolygon

这样

myBigMap@polygons[FRA][[1]]@Polygons[[1]]@coords

可以缩写

mypolygon@coords

等我已经看到我应该使用环境来替代以前的 .Alias 失效函数,但无法找到如何告诉 R 我想将复杂对象的子部分视为一个环境。谢谢!

最佳答案

作业:

 mypolygon=myBigMap@polygons[FRA][[1]]@Polygons[[1]]

在您修改其中的某些内容之前不会创建副本。因此,如果它只是访问数据以使某些代码更具可读性的简写形式,那就没问题了:

 mypolygon@coords
mean(mypolygon@coords[,1])

它们都不会复制。

但是,如果您确实修改了 mypolygon,例如通过更改 @coords,您需要将修改后的值放回结构中,因为已创建副本:

mypolygon@coords = mypolygon@coords * 1000
myBigMap@polygons[FRA][[1]]@Polygons[[1]] = mypolygon

我认为这是一个首选的解决方案,因为它与任何一种神奇的别名方案一样高效,而且它是明确的,因为没有发生神奇的远距离 Action 。

我认为没有任何方法可以像您想要的那样为对象的各个部分添加别名。

关于r - 为 R 中对象的插槽创建别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24550568/

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