【问题标题】:dplyr tibble() output is truncated in R, how do I show complete output?dplyr tibble() 输出在 R 中被截断,我如何显示完整的输出?
【发布时间】:2020-04-05 08:53:12
【问题描述】:
library(dplyr)
df <- as.data.frame(matrix(0, ncol = 200, nrow = 1))
names(df) <- paste0('col', 1:200)
df %>% as_tibble()
# A tibble: 1 x 200
#>    col1  col2  col3  col4  col5  col6  col7  col8  col9 col10 col11 col12
#>   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#> 1     0     0     0     0     0     0     0     0     0     0     0     0
#> # ... with 188 more variables: col13 <dbl>, col14 <dbl>, col15 <dbl>,
#> #   col16 <dbl>, col17 <dbl>, col18 <dbl>, col19 <dbl>, col20 <dbl>,
#> #   col21 <dbl>, col22 <dbl>, col23 <dbl>, col24 <dbl>, col25 <dbl>,
#> #   col26 <dbl>, col27 <dbl>, col28 <dbl>, col29 <dbl>, col30 <dbl>,
#> #   col31 <dbl>, col32 <dbl>, col33 <dbl>, col34 <dbl>, col35 <dbl>,
#> #   col36 <dbl>, col37 <dbl>, col38 <dbl>, col39 <dbl>, col40 <dbl>,
#> #   col41 <dbl>, col42 <dbl>, col43 <dbl>, col44 <dbl>, col45 <dbl>,
#> #   col46 <dbl>, col47 <dbl>, col48 <dbl>, col49 <dbl>, col50 <dbl>,
#> #   col51 <dbl>, col52 <dbl>, col53 <dbl>, col54 <dbl>, col55 <dbl>,
#> #   col56 <dbl>, col57 <dbl>, col58 <dbl>, col59 <dbl>, col60 <dbl>,
#> #   col61 <dbl>, col62 <dbl>, col63 <dbl>, col64 <dbl>, col65 <dbl>,
#> #   col66 <dbl>, col67 <dbl>, col68 <dbl>, col69 <dbl>, col70 <dbl>,
#> #   col71 <dbl>, col72 <dbl>, col73 <dbl>, col74 <dbl>, col75 <dbl>,
#> #   col76 <dbl>, col77 <dbl>, col78 <dbl>, col79 <dbl>, col80 <dbl>,
#> #   col81 <dbl>, col82 <dbl>, col83 <dbl>, col84 <dbl>, col85 <dbl>,
#> #   col86 <dbl>, col87 <dbl>, col88 <dbl>, col89 <dbl>, col90 <dbl>,
#> #   col91 <dbl>, col92 <dbl>, col93 <dbl>, col94 <dbl>, col95 <dbl>,
#> #   col96 <dbl>, col97 <dbl>, col98 <dbl>, col99 <dbl>, col100 <dbl>,
#> #   col101 <dbl>, col102 <dbl>, col103 <dbl>, col104 <dbl>, col105 <dbl>,
#> #   col106 <dbl>, col107 <dbl>, col108 <dbl>, col109 <dbl>, col110 <dbl>,
#> #   col111 <dbl>, col112 <dbl>, ...

我上面的 200 列 tibble 在我的 R 控制台中仅显示 112 列。如何显示所有列没有截断?

这不起作用:

?as_tibble()
df %>% as_tibble(.rows = 200)
df %>% as_tibble(n = 200)

我想查看所有列,而不是第一个代码块中的尾随 ...,包括列之后 col112

【问题讨论】:

  • options(dplyr.width = Inf)
  • @thelatemail 我认为我们都误解了这个问题。在df %&gt;% as_tibble() 的输出中,您会看到with 188 more variables: col13 &lt;dbl&gt; col14 &lt;dbl&gt;,..... 它以col111 &lt;dbl&gt;, col112 &lt;dbl&gt;. 结束,OP 希望它一直持续到col199 &lt;dbl&gt;, col200 &lt;dbl&gt;。意思是打印所有的列。 (希望这次我明白了)。
  • @RonakShah - 啊,我明白了。如果不需要这些值,为什么不直接使用colnames(df)
  • options(...) 返回指定选项的 previous 值,因此即使 as_tibbledplyr.width= 作为参数(它没有),它不会得到想要的/新的价值。也许options(dplyr.width=300)(或稍高)来获得你需要的东西。不是Infnrows= 也不会更改打印的列数。我试过options(dplyr.width=300) 并看到 152 列; 165 列 400;查看全部 200 列需要 561 次。
  • widthnrows 是不同的东西。但是不,你也不能做options(dplyr.width=ncol(df))。你可以做as_tibble(df) %&gt;% print(width=562)左右(见?options)。

标签: r dplyr


【解决方案1】:

print method 中有 n_extra 参数可以帮助您实现这一目标。

print(df %>% as_tibble(), n_extra = 200)

# A tibble: 1 x 200
#   col1  col2  col3  col4  col5  col6  col7  col8  col9 col10 col11 col12
#  <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
#1     0     0     0     0     0     0     0     0     0     0     0     0
# … with 188 more variables: col13 <dbl>, col14 <dbl>, col15 <dbl>,.....
#.......................................................................
#   .......col196 <dbl>, col197 <dbl>, col198 <dbl>, col199 <dbl>, col200 <dbl>

【讨论】:

    猜你喜欢
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-11
    • 2021-03-26
    • 2011-05-30
    • 1970-01-01
    相关资源
    最近更新 更多