getOption("max.print")
可用于限制可从单个函数调用打印的值的数量。例如:
options(max.print=20)
print(cars)
仅打印2列的前10行。但是,max.print
列表效果不佳。特别是如果它们被深深嵌套,打印到控制台的线条数量仍然是无限的。
有没有办法指定可以打印到屏幕的数量的更难截止?例如,通过指定可以中断打印的行数量?什么东西也可以防止打印巨大的递归对象?
答案 0 :(得分:4)
部分基于this question,我建议只为print
构建一个使用capture.output
来管理打印内容的包装器:
print2 <- function(x, nlines=10,...)
cat(head(capture.output(print(x,...)), nlines), sep="\n")
例如:
> 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