【发布时间】:2015-09-07 05:22:30
【问题描述】:
我有什么方法可以避免在R 中对矩阵进行就地修改时复制时进行修改?
我正在尝试将一个较小的矩阵复制到一个较大的矩阵切片中,如下所示。
library(data.table)
y <- matrix(c(11,21,31,12,22,32),nrow=3,ncol=2)
address(y)
[1] "08429190"
y[2:3,] <- matrix(c(1,1,8,12),nrow=2)
address(y)
[1] "0E033D28"
【问题讨论】:
-
在我的 comp 上返回相同的地址(并带有前缀“0x”)。
-
当我使用来自 data.table 包或 pryr 包的
address尝试上述命令时,我得到上述两个实例的相同地址。建议您尝试更新版本的 R。另外请提供包含库调用的自包含代码示例。 -
使用
data.table::address,我得到与 OP 相同的行为。 (R 3.2.0、RStudio 0.99.441、Windows 8.0、data.table 1、9、5)。但是,使用 R 控制台,它返回相同的地址。所以,问题出在 RStudio。
标签: r matrix data.table copy-on-write