所述getOption("max.print")可用于限制可从一个函数调用被打印的值的数目.例如:
options(max.print=20)
print(cars)
Run Code Online (Sandbox Code Playgroud)
仅打印2列的前10行.但是,max.print列表不能很好地工作.特别是如果它们被深深嵌套,打印到控制台的线条数量仍然是无限的.
有没有办法指定可以打印到屏幕上的金额的更难截止?例如,通过指定可以中断打印的行数量?什么也可以防止打印巨大的递归对象?
部分基于这个问题,我建议只构建一个包装器,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)