Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 是否可以打印一个data.table的100多行?_R_Printing_Data.table_Options_Output Formatting - Fatal编程技术网

R 是否可以打印一个data.table的100多行?

R 是否可以打印一个data.table的100多行?,r,printing,data.table,options,output-formatting,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有一个很好的特性,可以抑制输出到表的头部和尾部

是否可以一次查看/打印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, ]

我经常有一些数据。表格结果有点大(例如200行),我只想查看。

数据的打印方法。
表格有一个参数
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

这是一个混乱的选项,但您始终可以将其导出到excel以方便地查看它

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

View()
(就像在
视图(iris)
视图(dtIris[1:120,])
)中一样)不会截断
数据。表格
s通常比打印/输出
数据更好。*
到控制台。

要打印顶部60行和底部60行(默认为顶部5行和底部5行):


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

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

表用于存储大量数据。享受Excel带来的乐趣。因此我提出了“一个混乱的选项”。取决于数据的大小。如果您已经在使用R,并且您对特定问题的解决方案是将数据导出到Excel,请询问堆栈溢出以获得更好的方法。Timothy,您可能会发现这很有用:+1,这也是常见问题2.11。还请注意,奇怪的是,在提示符下键入
print(DT)
(带或不带
nrows
)比只键入
DT
要快。在第二种(更常见的)情况下(在分派过程中?),在data.table方法出现以打印头部和尾部之前,似乎要复制整个对象。如果有人知道R为什么这么做,我很想知道。请参阅关于
applyClosure
中的注释
nrows
在我的示例中不起作用,它仅显示截断的表。但是,
topn
起作用。真奇怪。例如,我使用了
data.table::print.data.table(dtIris,nrows=100)
在我的例子中
n
起作用,但是
nrows
topn
都不起作用(R3.3.2)
print(DT,topn=150)
对我来说可以显示前150行。R版本3.4.2(2017-09-28)data.table_1.10.4-3平台:x86_64-pc-linux-gnu(64位),运行于:Ubuntu 16.04.3 LTSVery nice!甚至可以在RStudio服务器环境下工作,并允许我将一份小报告复制到Excel中,以供子孙后代使用。@geneorama--感谢您添加此注释。我通常使用普通的Windows R gui或Windows emacs安装,我想知道
View()
的实现范围有多广。我特别好奇它在*NIX机器上产生了什么。它也在linux上工作,这里。。。但我不知道如何复制报告。很好。您也可以在选项中使用
选项(datatable.print.topn=60)
进行设置。另外,我还了解到一个功能,它允许您扩展或限制打印列的宽度
选项(datatable.prettyprint.char=80L)
。默认情况下未设置此prettyprint选项,因此您必须知道该命令才能使用它(而您可以在options()中搜索其他选项,如
datatable.print.topn
datatable.print.nrows
,因为我在其他任何地方都找不到它:控制列宽(nchar/字符数)的选项是
选项(datatable.prettyprint.char=5L)
。这只在(新闻)[好的解决办法,但它没有回答问题。如果你开始研究解决办法,那么你可以提出很多建议,比如“只使用SAS!”或“一次打印一行!”…你明白了。
iris_dt = as.data.table(iris)
print(as.data.frame(iris_dt))