Ist es möglich, die Ausgabe beim Betrachten des Inhalts von Datenrahmen abzuschneiden?
-
28-10-2019 - |
Frage
Ich habe einen Datenrahmen mit einigen sehr langen Spalten "Kommentare". Wenn ich sie anzeigt, sind sie in verschiedene Blöcke unterteilt, wodurch es schwierig ist, über Reihen zu lesen. Ist es möglich, eine Einstellung in R zu ändern oder den Aufruf an Data zu ändern.
Beispiel: Ein 3-Spalte-Datenframe
data.frame(cbind(rep(1,5),rep(c("very very long obnoxious character string here" ,"dog","cat","dog",5)),rep(c("very very long obnoxious character string here" ,"dog","cat","dog",5))))
Resultierende Datenframe, wie auf meinem Bildschirm angezeigt:
X1 X2
1 1 very very long obnoxious character string here
2 1 dog
3 1 cat
4 1 dog
5 1 5
X3
1 very very long obnoxious character string here
2 dog
3 cat
4 dog
5 5
Lösung
Ich empfehle eine Art explizite Weise wie folgt:
f <- function(x) data.frame(lapply(x, substr, 1, 5))
Verwendungszweck:
> f(d)
X1 X2 X3
1 1 very very
2 1 dog dog
3 1 cat cat
4 1 dog dog
5 1 5 5
Obwohl es möglich ist, das Standardverhalten zu ändern, empfehle ich nicht:
body(format.data.frame)[[5]] <- quote(for (i in 1L:nc) rval[[i]] <- substr(format(x[[i]], ..., justify = justify), 1, 5))
unlockBinding("format.data.frame", baseenv())
assign("format.data.frame", format.data.frame, pos = baseenv())
lockBinding("format.data.frame", baseenv())
rm(format.data.frame)
Verwendungszweck:
> d
X1 X2 X3
1 1 very very
2 1 dog dog
3 1 cat cat
4 1 dog dog
5 1 5 5
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow