在n行之后停止打印

Jer*_*oen 9 r cran

所述getOption("max.print")可用于限制可从一个函数调用被打印的值的数目.例如:

options(max.print=20)
print(cars)
Run Code Online (Sandbox Code Playgroud)

仅打印2列的前10行.但是,max.print列表不能很好地工作.特别是如果它们被深深嵌套,打印到控制台的线条数量仍然是无限的.

有没有办法指定可以打印到屏幕上的金额的更难截止?例如,通过指定可以中断打印的行数量?什么也可以防止打印巨大的递归对象?

Tho*_*mas 4

部分基于这个问题,我建议只构建一个包装器,print用于capture.output调节打印的内容:

print2 <- function(x, nlines=10,...)
    cat(head(capture.output(print(x,...)), nlines), sep="\n")
Run Code Online (Sandbox Code Playgroud)

例如:

> print2(list(1:10000,1:10000))
[[1]]
    [1]     1     2     3     4     5     6     7     8     9    10    11    12
   [13]    13    14    15    16    17    18    19    20    21    22    23    24
   [25]    25    26    27    28    29    30    31    32    33    34    35    36
   [37]    37    38    39    40    41    42    43    44    45    46    47    48
   [49]    49    50    51    52    53    54    55    56    57    58    59    60
   [61]    61    62    63    64    65    66    67    68    69    70    71    72
   [73]    73    74    75    76    77    78    79    80    81    82    83    84
   [85]    85    86    87    88    89    90    91    92    93    94    95    96
   [97]    97    98    99   100   101   102   103   104   105   106   107   108
Run Code Online (Sandbox Code Playgroud)