r - R中的替换函数
问题描述
我在他的书网站上阅读了 Hadley Wickham 的 Advanced R。我在R中发现了一个关于替换函数的问题。下面的结果是根据他的书给出的。
library(pryr)
x <- 1:10
address(x)
#> [1] "0x103945110"
x[2] <- 7L
address(x)
#> [1] "0x103945110"
他认为如果我们只替换 x 的第二个元素,x 的地址不会改变。但是,当我这样做时, x 的物理地址实际上发生了变化。所以,有人告诉我为什么吗?
解决方案
R 3.5 以 . 形式存储值的方式发生a:b
了变化。如果您尝试使用相同的示例
library(pryr)
x <- c(1,2,3,4,5,6,7,8,9,10)
address(x)
x[2] <- 7L
address(x)
你应该得到相同的地址。现在1:10
它没有完全扩展,直到它必须是。并且更改向量内的元素将导致它扩展。
推荐阅读
- r - 删除所有列中值低于阈值的行
- python - 如何检索字符串中的最后两条数据?
- c++ - gmock.h 不包含在我的 Google 测试的外部依赖项中
- flutter - Flutter:在容器中插入“if”时,“期望一个标识符”和“期望找到')'”
- terminal - 终端无法正常显示 - “[oh-my-zsh] 检测到不安全的完成依赖目录:”
- python - 如何将表单中的数据保存在基础中?
- safari - safari 中的类名冲突
- c# - AutoMapper - 如何从源的单个属性映射整个对象?
- c# - AWS Cognito 身份验证成功,但使用 .NET Core 授权失败
- javascript - Javascript将变量分配给名称以数字开头的对象字段