Operador “[<-” no RStudio e R
Por acaso eu encontrei um comportamento estranho de"[<-"
operador. Ele se comporta de maneira diferente dependendo da ordem das chamadas e se estou usando o RStudio ou apenas o RGui comum. Eu vou me fazer claro com um exemplo.
x <- 1:10
"[<-"(x, 1, 111)
x[5] <- 123
Tanto quanto eu sei, primeiro assigment não deve mudarx
(ou talvez eu esteja errado?), enquanto o segundo deveria fazer. E, de fato, o resultado das operações acima é
x
[1] 1 2 3 4 123 6 7 8 9 10
No entanto, quando executamos essas operações em ordem diferente, os resultados são diferentes ex
mudou! Significativamente:
x <- 1:10
x[5] <- 123
"[<-"(x, 1, 111)
x
[1] 111 2 3 4 123 6 7 8 9 10
Mas isso só acontece quando estou usando R simples! No RStudio, o comportamento é o mesmo em ambas as opções. Eu verifiquei em duas máquinas (uma com o Fedora com o Win7) e a situação parece exatamente a mesma. Eu conheço a versão 'funcional' ("[<-"(x..)
) provavelmente nunca é usado, mas estou muito curioso para saber o que está acontecendo. Alguém poderia explicar isso?
==========================
EDIT: Ok, então a partir de comentários recebo que a razão foi quex <- 1:10
tem tipo 'inteiro' e depois de substituirx[5] <- 123
é 'duplo'. Mas ainda permanece a pergunta por que o comportamento é diferente no RStudio? Eu reinicio a sessão R e isso não muda nada.