Possibilité d’imprimer plus de 100 lignes d’un data.table?

Le data.table a une fonctionnalité intéressante qui supprime la sortie vers la tête et la queue de la table.

Est-il possible de visualiser / imprimer plus de 100 lignes à la fois?

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

J’ai souvent des résultats de data.table assez importants (par exemple 200 lignes) que je veux simplement voir.

La méthode print de data.table a un argument nrows :

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

Vous pouvez l’utiliser pour contrôler le nombre de lignes imprimées:

 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 

View() (comme dans View(iris) ou View(dtIris[1:120,]) ) ne tronque pas data.table s, et peut souvent être plus agréable que d’imprimer / cracher des data.* data.table la console.

Pour imprimer les 60 premières lignes et les 60 dernières lignes (la valeur par défaut est 5 et 5):

 print(dtIris, topn = 60) 

Une option désordonnée, mais vous pouvez toujours l’exporter dans Excel pour le voir avec une excellente commodité.

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

Vous pouvez le convertir en data.frame uniquement pour l’impression:

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