The manual Zustände:Warum sollte der "=" R-Operator nicht in Funktionen verwendet werden?
Der Operator ‚< -‘ kann überall eingesetzt werden, während des Operators ‚=‘ nur auf der obersten Ebene erlaubt sind (zB im vollständigen Ausdruck an der Eingabeaufforderung eingegeben) oder als eine der Teilausdrücke in einer Klammerliste von Ausdrücken.
The question here Erwähnen Sie den Unterschied, wenn Sie im Funktionsaufruf verwendet werden. Aber in der Funktionsdefinition, so scheint es normal zu arbeiten:
a = function()
{
b = 2
x <- 3
y <<- 4
}
a()
# (b and x are undefined here)
Warum das Handbuch, dass the operator ‘=’ is only allowed at the top level
erwähnt ??
Es gibt nichts darüber in den language definition (es gibt keine =
Betreiber aufgeführt, was für eine Schande!)
Es ist in R-lang in [Abschnitt 10.4.2 Infix und Präfix-Operatoren] (http://cran.r-project.org/doc/manuals/R-lang.html#Infix-and-prefix-operators) erwähnt), aber sagt nicht viel mehr als das, was in dem Hilfeeintrag ist, den Sie erwähnten. –
Der Text, den Sie angeben, sagt "auf der obersten Ebene ** ODER ** in einer geschweiften Liste von Unterausdrücken". Sie verwenden es in einer abgestuften Liste von Teilausdrücken. Was ist erlaubt. – Andrie
Sie müssen sehr lange suchen, um einen Ausdruck zu finden, der weder in der obersten Ebene noch in Klammern steht. Hier ist eine. Manchmal möchten Sie eine Zuweisung in einen 'try'-Block schreiben:' try (x <- f()) 'ist in Ordnung, aber' try (x = f (x)) 'ist nicht - Sie müssen entweder die Option ändern Zuweisungsoperator oder Klammern hinzufügen. –