मैं आर सीख रहा हूं और वर्तमान में मैं इस पुस्तक को पढ़ रहा हूं । यह सुनिश्चित करने के लिए कि मैं अवधारणा को समझता हूं, मैंने निम्नलिखित परीक्षण चलाया जो मेरे लिए काफी भ्रमित करने वाला था और यदि आप इसे स्पष्ट कर सकते हैं तो मैं सराहना करूंगा। यहाँ परीक्षण है, जिसे मैं सीधे टर्मिनल से आर शेल में चलाता था (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])दो बार चलने पर भी आपको अलग-अलग परिणाम देने चाहिए, क्योंकि हर नए पूर्णांक का अपना पता होगा।