可getOption("max.print")
用于限制可以从单个函数调用中打印的值的数量。例如:
options(max.print=20)
print(cars)
仅打印 2 列的前 10 行。但是,max.print
列表效果不太好。特别是如果它们嵌套很深,打印到控制台的行数仍然可以是无限的。
有没有办法指定可以打印到屏幕上的数量的更硬截止?例如,通过指定可以中断打印的行数?还可以防止打印巨大的递归对象的东西?
部分基于这个问题,我建议只构建一个用于规范打印内容的包装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