2016-03-25 7 views

Antwort

3

Benutzerdefinierte Infix Operatoren müssen von Prozentzeichen in R umgeben sein. So ist die Antwort auf Ihre Frage, "Sie können nicht". Es tut uns leid.

Vom R language definition:

R ermöglicht benutzerdefinierte Infixoperatoren. Diese haben die Form einer Zeichenkette, die durch das Zeichen '%' begrenzt ist. Die Zeichenfolge kann ein beliebiges druckbares Zeichen außer '%' enthalten. Die Escape-Sequenzen für Strings gelten hier nicht.

Die einzigen Alternativen, die ich denken kann, die beide ziemlich verzweifelt:

  • wenn x und y sind als Mitglieder einer S4-Klasse definiert sind, dann können Sie overload dispatch for the + symbol
  • Sie den R-Parser hacken könnte (nicht empfohlen!), wie in this example, wo jemand einen schreibgeschützten Github-Spiegel von R gab, um den Parser zu modifizieren (beschrieben here).
1

Ich stimme mit Ben Bolker, dass Sie nicht definieren können (+) ohne%. Wenn Sie jedoch schauen, um eine Funktion zu erstellen, wie oben, warum nicht die folgend verwenden:

`&`<- function(x, y) { x+(2*y) } 
2&3 
#Use rm to remove the defined function 
rm(`&`) 
+0

Eigentlich kann man nicht + definiert nach der Anforderung, weil es zu einem unendlichen Rekursion Fehlern führen würde, da Sie etwas definieren, dass er benutzt in der eigentlichen Funktion. – TsTeaTime