r - 就地修改优化似乎不适用于具有单个绑定的对象
问题描述
根据 Hadley Wickham 的Advanced R,具有单个绑定的对象在修改时不应被复制(第 2.5.1 章)。但是,在我的系统上,我看不到在这种情况下应用了就地修改优化
x <- c(1,2,3)
tracemem(x)
#> "<0x10c3b16f8>"
x[[3]] <- 4
#> tracemem[0x10c3b16f8 -> 0x10b9305a8]:
也就是说,x
当它被修改时不应该被复制x[[3]] <- 4
。
我怎么了?为什么 R 在这个例子中不使用就地修改优化?
编辑:添加会话信息
R version 3.5.0 (2018-04-23)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Sierra 10.12.5
Matrix products: default
BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] lobstr_0.0.0.9000
loaded via a namespace (and not attached):
[1] compiler_3.5.0 tools_3.5.0 yaml_2.2.0 Rcpp_1.0.0 rlang_0.3.0.9000
解决方案
推荐阅读
- python - 如何解决 Python 中有关 minizinc 包的此错误?
- python - / 不支持的操作数类型:自定义保存上的“int”和“NoneType” - Django 表单
- html - HTML 到 pdf 损坏的图像
- javascript - 如何在渲染方法上返回一个 div 和一个数组映射?
- python - 将月份添加到大于 Timestamp 类型限制的日期
- c# - 如何在列表中创建包含列表的 CSV?
- python - Python:最多并行X个等待操作
- java - 我无法将多个摆动组件添加到 jframe
- process - tcl子进程执行异常
- r - 即使开启了不太安全的应用程序,我们也无法对 R 的 googlesheets 库进行身份验证