Заменяющие функции в R - PullRequest
0 голосов
/ 02 июля 2018

Я прочитал «Advanced R» Хэдли Уикхэма на веб-сайте его книги. Я нашел вопрос о замещающих функциях в R. По его книге приведен следующий результат.

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

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

Он предположил, что адрес x не изменится, если мы просто заменим второй элемент x. Однако, когда я делаю это, физический адрес x фактически изменился. Так, кто-нибудь скажет мне почему?

1 Ответ

0 голосов
/ 02 июля 2018

Произошло изменение в том, как R 3.5 сохраняет значения в форме 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 не полностью развернут, пока не должно быть. А изменение элемента внутри вектора приведет к его расширению.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...