データフレームの内容を表示するときに出力を切り捨てることは可能ですか?

StackOverflow https://stackoverflow.com/questions/8379988

質問

非常に長い「コメント」列を備えたデータフレームがあります。私がそれらを表示すると、それらは異なるブロックに分かれているため、行全体で読みにくくなります。 Rの設定を変更したり、データへの呼び出しを変更して、特定の長さで文字列を切り捨ててフレームを変更することは可能ですか?

例:3列のデータフレーム

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))))

私の画面に見られるように、結果のデータフレーム:

  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
役に立ちましたか?

解決

このような明示的な方法をお勧めします:

f <- function(x) data.frame(lapply(x, substr, 1, 5))

利用方法:

> 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

デフォルトの動作を変更することは可能ですが、私はお勧めしません:

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)

利用方法:

> d
  X1    X2    X3
1  1 very  very 
2  1   dog   dog
3  1   cat   cat
4  1   dog   dog
5  1     5     5
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top