Ich versuche, Werte aus einem Vektor zu extrahieren, indem ich numerische Vektoren verwende, die auf zwei scheinbar gleichwertige Arten ausgedrückt werden:
%Vor% Ich bin verwirrt, warum der Ausdruck x[2:3]
ein anderes Ergebnis liefert als x[1+1:3]
- der zweite enthält einen NA
-Wert am Ende. Was vermisse ich?
Weil der Operator :
Vorrang hat vor +
also 1+1:3
ist wirklich 1+(1:3)
(also 2:4
) und nicht 2:3
. Um die Reihenfolge der Ausführung entsprechend der Rangfolge der Operatoren zu ändern, verwenden Sie die Klammern ()
Sie können die Rangfolge der Operatoren in der Hilfedatei ?Syntax
sehen. Hier ist der relevante Teil:
Die folgenden unären und binären Operatoren sind definiert. Sie werden in Vorranggruppen vom höchsten zum niedrigsten aufgelistet.
::
:::
Zugriffsvariablen in einem Namespace
$
@
Komponenten- / Slot-Extraktion
[
[[
indexing < br>^
Exponentiation (von rechts nach links)
-
+
unary minus und plus
:
Sequenzoperator
%any%
Spezialoperatoren (einschließlich%%
und%/%
)
*
/
multiplizieren, dividieren
+
-
(binär) hinzufügen, subtrahieren