-1
Ich bin neu in R. Also im Grunde habe ich 2 Fragen:Ändern Objekte innerhalb einer Funktion in r
- In C++ können wir Objekte passieren als Referenzen der Lage sein, eine Funktion zurückzukehren mehrere geänderten Objekte aus . Was ist eine äquivalente Methode zum Ändern mehrerer Objekte in einer Funktion? (zum Beispiel
a
undb
infyfunc
) - In unten Code, ich dachte, seit ich Zugriff auf
b
innerhalbmyfunc
habe, könnte ich es ändern. Aber anscheinend ist es eine Kopie vonb
. Gibt es überhaupt eine Änderung anb
innerhalbmyfunc
?
a <- c(1,2,3) b <- c(4,5,6) myfunc <- function(a) { b <- b+1 cat(b) # prints: 5 6 7 a <- a+1 } a <- myfunc(a) a b # stil 4 5 6
Schlechte Idee. Es wird nicht empfohlen, Objekte in Umgebungen zu ändern. –
Schreiben Sie keinen R-Code wie Sie C++ - Code schreiben. Dies wird später zu Härten führen. R ist eine funktionale Sprache und Funktionen sollten idealerweise keine Nebenwirkungen haben (Werte außerhalb ihres Gültigkeitsbereichs ändern). Versuchen Sie, Ihr Design besser zu überdenken. – MrFlick
Es gibt Möglichkeiten, das zu tun, wie zum Beispiel '' '' '' anstatt '<-' zu verwenden, aber es ist eine schlechte Übung. Schau hier: https://stackoverflow.com/questions/2628621/how-do-you-use-scoping-assignment-in-r – Masoud