Hat R ein Konzept von +=
(plus gleich) oder ++
(plus plus) wie c ++ / c # / andere?
r
operators
variable-assignment
increment
SFun28
quelle
quelle
x += 1
oderx++
-x = x + 1
funktioniert.Antworten:
Nein, siehe nicht: R Sprachdefinition: Operatoren
quelle
Nach @ GregaKešpret können Sie einen Infix-Operator erstellen:
quelle
x = %+=% y/2
zurückx = (x + y)/2
. Das Hinzufügen von Klammernx = %+=% (y/2)
löst das Problem.R hat kein Konzept von
increment operator
(wie zum Beispiel ++ in C). Es ist jedoch nicht schwierig, eine selbst zu implementieren, zum Beispiel:In diesem Fall würden Sie anrufen
Es führt jedoch zu einem Funktionsaufruf-Overhead, sodass es langsamer ist als das Eingeben
x <- x + 1
. Wenn ich mich nicht irre,increment operator
wurde eingeführt, um die Arbeit für den Compiler zu vereinfachen, da er den Code direkt in diese Maschinensprachenanweisungen konvertieren könnte.quelle
INC
Anweisungen wurden in Prozessoren hauptsächlich zum Implementieren von Zählern eingeführt (vgl. Intel Software Developer's Manual). Ich werde die Antwort aktualisieren.R hat diese Operationen nicht, da (die meisten) Objekte in R unveränderlich sind. Sie ändern sich nicht. Wenn es so aussieht, als würden Sie ein Objekt ändern, ändern Sie normalerweise eine Kopie.
quelle
Inkrementieren und Dekrementieren um 10.
quelle
Hmisc
Version 4.1.0 entfernt worden zu sein.Wir haben ein Paket veröffentlicht, Roperators, um bei solchen Dingen zu helfen. Weitere Informationen finden Sie hier: https://happylittlescripts.blogspot.com/2018/09/make-your-r-code-nicer-with-roperators.html
quelle
Wir können überschreiben
+
. Wenn unary+
verwendet wird und sein Argument selbst ein unary-+
Aufruf ist, erhöhen Sie die relevante Variable in der aufrufenden Umgebung.andere Operationen ändern sich nicht:
Tun Sie es aber nicht, da Sie alles verlangsamen werden. Oder machen Sie es in einer anderen Umgebung und stellen Sie sicher, dass diese Anweisungen keine großen Schleifen enthalten.
Sie können dies auch einfach tun:
quelle
Es gibt noch einen anderen Weg, den ich sehr einfach finde, vielleicht ohne Hilfe
Ich benutze
<<-
für diese Situation Die Operatoren<<-
weisen den Wert der übergeordneten Umgebung zuund man kann es so nennen
quelle