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

时间:2012-08-28 15:31:50

标签: r printing data.table options output-formatting

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, ]

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

5 个答案:

答案 0 :(得分:47)

data.table的打印方法有一个参数nrows

args(data.table:::print.data.table)
function (x, nrows = 100L, digits = NULL, ...) 

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

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

答案 1 :(得分:18)

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

答案 2 :(得分:10)

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

<?php
use yii\widgets\ActiveForm;

$form = ActiveForm::begin(['options' => ['enctype' => 'multipart/form-data']]); ?>

<?= $form->field($model, 'uploadedFiles')->fileInput() ?>

<button>Submit</button>

<?php ActiveForm::end(); ?>

答案 3 :(得分:1)

一个混乱的选项,但你总是可以将它导出到excel中以便于查看它。

library(xlsReadWrite)
write.xls(mydata, "c:/mydata.xls")

答案 4 :(得分:0)

您只能将其转换为data.frame进行打印:

iris_dt = as.data.table(iris)
print(as.data.frame(iris_dt))