r - 为什么对象的地址每次都在r中改变
问题描述
我在 rstudio 中执行以下命令,每次都得到不同的地址(对于对象的一部分)。你能帮助我吗?
谢谢
require(lobstr)
x <- list(1, 2, 3)
ref(x[1])
解决方案
根据list
列表被逐个元素地复制到配对列表中,列表的名称用作配对列表的标签:其他类型参数的返回值未记录。
由于这些是逐个元素的copy
,因此地址是不同的。为了理解,只需创建NULL
一些length
. 最初,它们都具有相同的地址,但是一旦分配了值,它就会被复制,因此地址会发生变化
library(lobstr)
x1 <- vector('list', 3)
sapply(x1, ref)
#[1] "[1:0x7fc1e00746e0] <NULL>" "[1:0x7fc1e00746e0] <NULL>" "[1:0x7fc1e00746e0] <NULL>"
以上所有显示相同的位置。现在,我们一一赋值,注意地址的变化
x1[[1]] <- 1
sapply(x1, ref)
#[1] "[1:0x7fc162dc10f0] <dbl>" "[1:0x7fc1e00746e0] <NULL>" "[1:0x7fc1e00746e0] <NULL>"
x1[[2]] <- 2
sapply(x1, ref)
#[1] "[1:0x7fc162dc10f0] <dbl>" "[1:0x7fc1608c86a8] <dbl>" "[1:0x7fc1e00746e0] <NULL>"
推荐阅读
- java - 有没有办法简化这个旨在返回给定整数的绝对值的代码?
- html - css 3D rotate 在 safari 和 ios safari 上不起作用(确实使用了 -webkit- 和一切)
- java - File.createTempFile 抛出 Permission denied
- android - 如何开始使用 Pjsip 视频聊天 android 应用程序?
- ms-access-2010 - 修复 Visual Basic 中的连接 ms 访问错误?
- ios - 如果正在使用我的小部件,如何查询 WidgetKit?
- javascript - 显示空白数据的下拉列表
- php - 如何创建多维数组以按类别分组
- reactjs - 在 reactjs 中使用 window.open() 打开文件时以自定义名称下载文件
- python - 不推荐使用 Mysql 'VALUES 函数'