R中的替换功能

时间:2018-07-02 14:54:37

标签: r

我在他的书的网站上阅读了Hadley Wickham的AdvancedR。我在R中发现了一个关于替换函数的问题。根据他的书,给出了以下结果。

library(pryr)
x <- 1:10
address(x)
#> [1] "0x103945110"

x[2] <- 7L
address(x)
#> [1] "0x103945110"

他认为如果只替换x的第二个元素,x的地址就不会改变。但是,当我这样做时,x的物理地址实际上发生了变化。那么,有人告诉我为什么吗?

1 个答案:

答案 0 :(得分:4)

有一个change in how R 3.5 stores values in the form 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尚未完全展开。更改矢量内的元素将使其扩展。