При выполнении
x <- 1:5
"[<-"(x, 2:3, value = 9:10)
вы увидите выход в результате замены:
1 9 10 4 5
Однако первоначальное значение x
не будет затронут (вы не перезапись)
Следовательно, если вы выполните x
, вы увидите его исходное значение:
1 2 3 4 5
Если я бегу все линии в то же время (я предполагаю, что вы используете RStudio), я буду видеть это (я думаю, что это, почему вы просите)
execute> x <- 1:5
execute> "[<-"(x, 2:3, value = 9:10)
[1] 1 9 10 4 5
execute> x
[1] 1 9 10 4 5
I предположим, это какое-то странное поведение RStudio (может быть, похоже на this one), хотя значение x
вообще не изменяется.
Обратите внимание, что это не произойдет, если вы измените последнюю строку. Например.
x <- 1:5
"[<-"(x, 2:3, value = 9:10)
x <- 6:10
execute> x <- 1:5
execute> "[<-"(x, 2:3, value = 9:10)
[1] 1 9 10 4 5
execute> x <- 6:10
execute>
EDITED
Запуск с R версии 3.3.1 и RStudio версии 0.99.467.
Выполнение трех линий изменяет значение x
на 1 9 10 4 5
. Тем не менее, запустив первую линию, а затем и второй и третий, показывает правильный результат (а значение x
не влияет)
execute> x <- 1:5
execute> "[<-"(x, 2:3, value = 9:10)
[1] 1 9 10 4 5
execute> x
[1] 1 2 3 4 5
Я вижу это как 1 9 10 4 5 в любом случае. – Frank
Как именно вы выполняете эти коды? Я не могу воспроизвести вашу проблему. – MrFlick
@Frank Я попробовал еще раз на другом компьютере, x будет 1 2 3 4 5 в любом случае. Я думаю, что функцию замены не следует вызывать напрямую. –