可以打印超过100行的data.table吗?

gen*_*ama 46 printing r options output-formatting data.table

data.table有一个很好的功能,可以抑制输出到表的头部和尾部.

是否可以一次查看/打印超过100行?

library(data.table)
## Convert the ubiquitous "iris" data to a data.table
dtIris = as.data.table(iris)
## Printing 100 rows is possible
dtIris[1:100, ]
## Printing 101 rows is truncated
dtIris[1:101, ]
Run Code Online (Sandbox Code Playgroud)

我经常有data.table结果,有点大(例如200行),我只想查看.

And*_*rie 48

print方法data.table有一个参数nrows:

args(data.table:::print.data.table)
function (x, nrows = 100L, digits = NULL, ...) 
Run Code Online (Sandbox Code Playgroud)

您可以使用它来控制打印的行数:

print(dtIris, nrow=105)
.....
99:          5.1         2.5          3.0         1.1 versicolor
100:          5.7         2.8          4.1         1.3 versicolor
101:          6.3         3.3          6.0         2.5  virginica
102:          5.8         2.7          5.1         1.9  virginica
103:          7.1         3.0          5.9         2.1  virginica
104:          6.3         2.9          5.6         1.8  virginica
105:          6.5         3.0          5.8         2.2  virginica
     Sepal.Length Sepal.Width Petal.Length Petal.Width    Species
Run Code Online (Sandbox Code Playgroud)

  • +1这也是FAQ 2.11.另请注意,奇怪的是,在提示符下键入`print(DT)`(有或没有`nrows`)比仅键入`DT`更快.在data.table方法出现以打印头部和尾部之前,似乎是在第二个(更常见的)情况下(在发送期间?)复制整个对象.如果有人知道R为什么这样做,我很想知道.请参阅[FR#1001 REPL打印副本](https://r-forge.r-project.org/tracker/index.php?func=detail&aid=1001&group_id=240&atid=978)中关于`applyClosure`的评论. (6认同)
  • `nrows`在我的情况下不起作用,它只显示截断的表.但是,`topn`有效.有点奇怪.我使用了例如`data.table ::: print.data.table(dtIris,nrows = 100)` (5认同)
  • 在我的情况下,`n`有效,但既不是'nrows`也不是`topn`有效(R 3.3.2) (3认同)

Jos*_*ien 18

View()(如在View(iris)or中View(dtIris[1:120,]))不会截断data.tables,并且通常比打印/喷出一个data.*更好的控制台更好.


use*_*167 10

打印前60行和后60行(默认为前5和后5):

print(dtIris, topn = 60)
Run Code Online (Sandbox Code Playgroud)

  • 优点.您也可以使用`options(datatable.print.topn = 60)`在选项中设置它.另外,我已经了解了一个允许您扩展或限制打印列`options(datatable.prettyprint.char = 80L)`的宽度的功能.默认情况下不设置此prettyprint选项,因此您必须知道该命令才能使用它(而您可以搜索options()以查找其他选项,例如`datatable.print.topn`和`datatable.print.nrows` (2认同)