Оператор «[<-» в RStudio и R
Случайно я столкнулся со странным поведением"[<-"
оператор. Он ведет себя по-разному в зависимости от порядка вызовов и от того, использую ли я RStudio или просто обычный RGui. Я поясню на примере.
x <- 1:10
"[<-"(x, 1, 111)
x[5] <- 123
Насколько я знаю, первое назначение не должно изменитьсяx
(а может я и не прав?), а второй должен делать. И на самом деле результат вышеуказанных операций
x
[1] 1 2 3 4 123 6 7 8 9 10
Однако, когда мы выполняем эти операции в другом порядке, результаты отличаются иx
изменилось! Сознательно:
x <- 1:10
x[5] <- 123
"[<-"(x, 1, 111)
x
[1] 111 2 3 4 123 6 7 8 9 10
Но это происходит только тогда, когда я использую обычный R! В RStudio поведение одинаково в обоих вариантах. Я проверил это на двух машинах (одна с Fedora, другая с Win7), и ситуация выглядит точно так же. Я знаю «функциональную» версию ("[<-"(x..)
), вероятно, никогда не используется, но мне очень любопытно, почему это происходит. Кто-нибудь может объяснить это?
==========================
РЕДАКТИРОВАТЬ: Хорошо, так из комментариев я понимаю, что причина была в том, чтоx <- 1:10
имеет тип «целое число» и после заменыx[5] <- 123
это «двойной». Но все еще остается вопрос, почему поведение отличается в RStudio? Я перезапускаю сессию R, и это ничего не меняет.