Rangfolge der Operatoren bei Verwendung von ":" (Doppelpunkt)

8

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?

    
Marc 07.06.2014, 08:14
quelle

1 Antwort

10

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

    
plannapus 07.06.2014, 08:21
quelle

Tags und Links