在带有package data.table的R中,如何使R完全显示数据表?

在带有package data.table的R中,如何使R完全显示数据表?,r,data.table,R,Data.table,在R中,data.table非常有用。然而,我在扩展数据表时遇到了麻烦,因为每次您列出data.table,它都有省略号以节省空间 例如: library(data.table) # Generate random data table that is large a <- data.table(a = 1:5000, b=letters[1:5]) tail(a, 150) > a b 1: 4851 a 2: 4852 b 3: 4853 c 4: 4854 d

在R中,
data.table
非常有用。然而,我在扩展数据表时遇到了麻烦,因为每次您列出
data.table
,它都有省略号以节省空间

例如:

library(data.table)
# Generate random data table that is large
a <- data.table(a = 1:5000, b=letters[1:5])
tail(a, 150)
>         a b
1: 4851 a
2: 4852 b
3: 4853 c
4: 4854 d
5: 4855 e
---       
146: 4996 a
147: 4997 b 
148: 4998 c
149: 4999 d
150: 5000 e
库(data.table)
#生成大的随机数据表
a a b
1:4851 a
2:4852 b
3:4853摄氏度
4:4854 d
5:4855东
---       
146:4996 a
147:4997 b
148:4998摄氏度
149:4999 d
150:5000东

如何使其显示中间的所有内容?

此行为在
datatable.print.nrows
选项中设置

getOption("datatable.print.nrows")
# [1] 100
您可以完全覆盖它,如下所示:

DTNR <- getOption("datatable.print.nrows")  ## To reset later

options(datatable.print.nrows=Inf)
tail(a, 150) ## Should give you all rows

options(datatable.print.nrows=DTNR)
tail(a, 150) ## Back to the default

我想这是
data.table::print.data.table
,试试
print(tail(a,150),150)
你可以做
data.frame(a)
。但是,为什么要将
5000
条目打印到控制台???调用
print.data.frame(a)
方法,而不转换
a
data.table
.OP似乎需要最后150个观察值,guiseI喜欢使用
a[1:150]
+1来添加调用
print(DT)
比单独的
DT
更快,因为在自动打印时,即键入
DT
时,R似乎会复制
DT
。Rv3.1.1中对此进行了修复,但刚刚进行的测试似乎仍在复制。将不得不再次调查:。如果正在打印的是
tail(a,150)
,那么
>tail(a,150)
>print(tail(a,150))
之间的速度差可以忽略不计,因为150行非常小。当
DT
较大时,主要影响
>DT
print(tail(a, 150), nrows = Inf)