In einem Buchprojekt habe ich viele Ausgaben, die ich abkürzen möchte, indem ich nur eine Teilmenge der Zeilen auswähle und ...
hinzufüge, um anzuzeigen, dass einige Ausgaben entfernt wurden. In der Ausgabe von summary(lm())
möchte ich zum Beispiel nur die Tabelle der Koeffizienten ausgeben und sie wie folgt aussehen lassen:
Ich habe den folgenden Ausgabe-Hook geschrieben, der mit einer Chunk-Option arbeitet, output.lines=
und akzeptiert eine einzelne Zahl, n, was bedeutet, nur Zeilen 1:n
zu drucken, so wie head()
:
Ich habe versucht, dies zu verallgemeinern, um einen (fortlaufenden) Vektor von Zeilennummern zu akzeptieren, wie es unten gezeigt wird, aber es scheint nicht so zu sein
Arbeit und ich kann nicht sagen, warum. Es ist auch nicht so allgemein, wie ich es möchte, weil die Weitergabe von output.lines=1:12
nur Linien 1:12 ... drucken sollte, und wie die Option echo=
, wäre es nett, output.lines = -1:3
zu verwenden, um ...
zu erhalten. gefolgt von allen übrigen Zeilen.
Ich denke, das ist ein allgemeineres Problem als nur meines, also wäre das vielleicht eine willkommene Ergänzung zu knitr.
-Michael
Thells Kommentar und Yihuis Testfall erlaubten mir, dies etwas zu verallgemeinern, so dass es nun genau das macht, was ich will.
Insbesondere funktioniert output.lines=1:12
genauso wie output.lines=12
und lässt die ursprüngliche ...
aus. Ähnlich für
Der Fall von output.lines=-(1:8)
, der das anfängliche ...
druckt, aber es auslässt, wenn die letzte Zeile in der
Bereich.
Dies entspricht nun meinen Bedürfnissen und könnte für andere ausreichend nützlich sein, um sie als neue Knitroch-Option hinzuzufügen.
Vom Design-Standpunkt aus gesehen, ist das einzige, was geändert werden kann, nur den Bereich der gewünschten Zeilen zu liefern, z.B.
output.lines=c(1,8)
oder output.lines=-c(1,8)
, da es sehr unordentlich und möglicherweise verwirrend wäre, die ...
s in nicht aufeinanderfolgenden Zeilenauswahlen zu berücksichtigen.
ZB mit der aktuellen Funktion wird output.lines=sample(1:15,10)
funktionieren und tatsächlich etwas Nützliches für einen Chunk tun
das druckt einen Datenrahmen ähnlich wie some(iris)
aus dem car
-Paket. Aber wenn ich das will, benutze ich some()
direkt.
Dieser Ausgabehaken dient nur dazu, einen Zeilenbereich aus gedruckten Ausgaben einer Funktion auszuwählen, die zu lang ist
nützlich in einem gedruckten Dokument enthalten, oder wenn Sie die Aufmerksamkeit nur auf einen Teil der Ausgabe konzentrieren und anzeigen möchten
dass einige Zeilen weggelassen wurden.