저는 R을 배우고 있으며 현재이 책을 읽고 있습니다. 개념을 이해하기 위해 다음 테스트를 실행하여 매우 혼란 스러웠으며 명확하게 설명해 주시면 감사하겠습니다. 다음은 터미널에서 R 셸에서 직접 실행 한 테스트입니다 (RStudio 또는 Emacs ESS를 사용하지 않음).
> library(lobstr)
>
> x <- c(1500,2400,8800)
> y <- x
> ### So the following two lines must return the same memory address
> obj_addr(x)
[1] "0xb23bc50"
> obj_addr(y)
[1] "0xb23bc50"
> ### So as I expected, indeed both x and y point to the same memory
> ### location: 0xb23bc50
>
>
>
> ### Now let's check that each element can be referenced by the same
> ### memory address either by using x or y
> x[1]
[1] 1500
> y[1]
[1] 1500
> obj_addr(x[1])
[1] "0xc194858"
> obj_addr(y[1])
[1] "0xc17db88"
> ### And here is exactly what I don't understand: x and y point
> ### to the same memory address, so the same must be true for
> ### x[1] and y[1]. So how come I obtain two different memory
> ### addresses for the same element of the same vector?
>
>
>
> x[2]
[1] 2400
> y[2]
[1] 2400
> obj_addr(x[2])
[1] "0xc15eca0"
> obj_addr(y[2])
[1] "0xc145d30"
> ### Same problem!
>
>
>
> x[3]
[1] 8800
> y[3]
[1] 8800
> obj_addr(x[3])
[1] "0xc10e9b0"
> obj_addr(y[3])
[1] "0xc0f78e8"
> ### Again the same problem: different memory addresses
내 실수가 어디인지,이 문제에서 내가 잘못 이해 한 것이 무엇인지 말해 줄 수 있습니까?
obj_addr(x[1])
두 번 실행하더라도 새로운 정수마다 자체 주소가 있으므로 다른 결과를 제공해야합니다.