Kann der Befehl print () in R gelöscht werden?

8

In R einige Funktionen können Informationen drucken und Werte zurückgeben, kann der Druck zum Schweigen gebracht werden?

Zum Beispiel:

%Vor%

gibt

zurück %Vor%

Ich kann die Rückgabe wie folgt speichern:

%Vor%

Kann ich den Ausdruck von "foo" unterdrücken?

    
ayman 10.09.2010, 01:21
quelle

5 Antworten

7

Sie können die versteckte funktionale Natur von R verwenden, zum Beispiel indem Sie die Funktion

definieren %Vor%

, das 'Druckfunktionen' in 'stille' Funktionen umwandelt:

%Vor%     
mbq 10.09.2010, 09:24
quelle
9
%Vor%     
hadley 10.09.2010 01:29
quelle
3

Wenn Sie unbedingt den Nebeneffekt des Druckens in Ihren eigenen Funktionen benötigen, warum nicht eine Option?

%Vor%     
Vince 10.09.2010 08:28
quelle
3

Ich stimme dem Vorschlag von hadley und mbq von capture.output als der allgemeinsten Lösung zu. Für den speziellen Fall von Funktionen, die Sie schreiben (d. H. Diejenigen, in denen Sie den Inhalt steuern), verwenden Sie message anstatt print . Auf diese Weise können Sie die Ausgabe mit suppressMessages unterdrücken.

%Vor%     
Richie Cotton 10.09.2010 10:16
quelle
1

Ich weiß, dass ich diesen Beitrag vielleicht wiederbeleben werde, aber jemand anders könnte ihn genauso finden wie ich. Ich war an dem gleichen Verhalten in einer meiner Funktionen interessiert und stieß nur auf "Unsichtbarkeit":

Es hat die gleiche Verwendung von return() , aber es wird nur der zurückgegebene Wert nicht gedruckt:

%Vor%

Also, für das Beispiel von @ayman:

%Vor%

Prost

    
Diego Freitas Coelho 11.03.2015 22:14
quelle

Tags und Links