使用多行列名打印R数据框

Inn*_*nuo 8 r dataframe

我有一个带有长列名的R数据框.因此,当我打印数据框时,它太宽了.是否有一种简单的方法可以将数据框打印到屏幕上,并且多个行中出现了同名?

我知道我可以缩短名字,但不想.

42-*_*42- 2

当奥斯卡的答案被接受时,我想这可能真的是一个答案。不幸的是,它只是复制代码format.daa.frame并说“在这里做一些未指定的魔法”。这是一些实际执行某些操作的代码,尽管我当时认为它太粗糙而无法发布。它仍然打印矩阵的行标题和列标题。我不知道如何抑制它。也许需要一种破解的矩阵打印方法?

dfrm <- data.frame(reallly_long.nameeeeeeeeeeeeeeeeeeeeeeee=letters[1:5],
                  secondreallly_long.nameeeeeeeeeeeeeeeeeeeeeeee=letters[1:5], short=2)

pdfrm <- function(dfrm) { # first print the names broken into sections
         print(  unname(t(sapply( 1:(max(nchar(names(dfrm))) %/% 12), 
                   # first construct break points to be passed to `substr`
             function(rr) sapply(names(dfrm), 
                         substr, 1+(rr-1)*10, 9+(rr-1)*10) ) )) ,quote=FALSE, 
                   # then print with sufficient gap
                 print.gap=8)
                   # Now print a headerless data.frame with wider spacing
         print( setNames(dfrm, rep(" ", length(dfrm))), print.gap = 15  )}
 pdfrm(dfrm)
#------------------------------
            [,1]             [,2]             [,3] 
[1,]        reallly_l        secondrea        short
[2,]        ng.nameee        lly_long.             
[3,]        eeeeeeeee        ameeeeeee             

1               a               a               2
2               b               b               2
3               c               c               2
4               d               d               2
5               e               e               2
Run Code Online (Sandbox Code Playgroud)