2013-07-06 12 views
6

Ich habe den R-Quellcode gelesen, um zu verstehen, wie er Hilfeseiten paginiert (zum Beispiel ?c). Ich denke, es verwendet less, aber ich konnte die Funktion nicht finden, die dies tut. Ich denke, ich könnte system(gettextf("echo %s | less", my_text)) tun, aber es wird nicht in Windows funktionieren.Wie paginate R-Ausgabe?

Antwort

7

Werfen Sie einen Blick auf ?page und ?file.show:

page(runif(1e5)) 
+0

Sehr nützlich, funktioniert sogar in RStudio! – krlmlr

+0

Danke. Weißt du, ob es eine Möglichkeit gibt, Text zu paginieren, ohne ihn in einer Datei zu speichern? – nachocab

+0

@nochocab: 'Seite' verwenden Sie auch eine temporäre Datei. Ich weiß nicht, ob und wie Sie eine Paginierung ohne eine temporäre Datei erreichen könnten. – sgibb

2

+1 bis @sgibb, page() wirklich nützlich ist. Es gibt einige Fälle, in denen ich jedoch mit einer komplizierteren Lösung gehen möchte. Sie können auch ?sink in Verbindung mit ?file.show verwenden:

sink(file="tempSink", type="output") 
    ... 
    # various commands 
    ... 
sink() 
file.show(file="tempSink", delete.file=TRUE, title="my output") 

Zum Beispiel page() nur einen Ausgang zeigen, aber Sie können zusammen an mehrere aussehen wollen. Ich habe auch bemerkt, dass manchmal page() nicht funktioniert, aber das obige wird (ich weiß nicht warum - es könnte nur ein Fehler sein).

+1

Es ist genau das selbe was "Seite" tut, wenn Sie 'method =" print "' verwenden (siehe: 'page (page)'). Sicher, Sie müssen Ihre * verschiedenen Befehle * in eine Funktion aufnehmen. – sgibb

Verwandte Themen