Operator „[<-” w RStudio i R
Przez przypadek spotkałem dziwne zachowanie"[<-"
operator. Zachowuje się inaczej w zależności od kolejności połączeń i tego, czy korzystam z RStudio, czy tylko zwykłego RGui. Przedstawię się jasno na przykładzie.
x <- 1:10
"[<-"(x, 1, 111)
x[5] <- 123
O ile wiem, pierwsze przypisanie nie powinno się zmienićx
(a może się mylę?), a drugi powinien. W rzeczywistości wynikiem powyższych operacji jest
x
[1] 1 2 3 4 123 6 7 8 9 10
Jednak gdy wykonujemy te operacje w innej kolejności, wyniki są różne ix
zmienił się! Znacząco:
x <- 1:10
x[5] <- 123
"[<-"(x, 1, 111)
x
[1] 111 2 3 4 123 6 7 8 9 10
Ale dzieje się to tylko wtedy, gdy używam zwykłego R! W RStudio zachowanie jest takie samo w obu opcjach. Sprawdziłem to na dwóch komputerach (jeden z Fedorą z Win7) i sytuacja wygląda dokładnie tak samo. Znam wersję „funkcjonalną” ("[<-"(x..)
) prawdopodobnie nigdy nie jest używany, ale jestem bardzo ciekawy, dlaczego tak się dzieje. Czy ktoś mógłby to wyjaśnić?
==========================
EDYCJA: Ok, więc z komentarzy wynika, że powodem było tox <- 1:10
ma typ „liczba całkowita” i po zastąpieniux[5] <- 123
to „podwójne”. Pozostaje jednak pytanie, dlaczego zachowanie w RStudio jest inne? Ponownie uruchamiam sesję R i nic nie zmienia.