2014-11-14 94 views
0

我喜欢在RStudio中使用View函数来查看我的数据是否正确加载。 但是,当数据为“大”时,此功能需要大量时间才能运行。为什么`View`函数需要这么长时间才能运行?

这是一个2MM行和

> system.time(View(bd_cadastral)) 
user system elapsed 
3.156 0.004 3.164 

在RStudio,该函数仅示出第一行1000的定时9列data.frame,所以如果我做View(bd_cadastral[1:1000,]

> system.time(View(bd_cadastral[1:1000,])) 
    user system elapsed 
    0.068 0.000 0.089 

这不应该在同一时间?

+0

那么需要一点时间在200万行上制作一个类似电子表格的HTML文档。是什么让你认为1000行将花费200万的时间? – 2014-11-14 18:34:36

+0

我可以想象,但为什么函数在每一行都使电子表格显示,只显示前1000个? – 2014-11-14 18:36:10

+0

我真的觉得这个问题应该直接进入RStudio开发团队:P – Barranka 2014-11-14 18:46:47

回答

3

如果你看看这个函数的内部,你会发现它并不直接把它要显示的子集。它首先试图将整个东西强制转换为数据框,并在可能转换的输入上使用lapplysapply。即使在最后,它也会将整个变量传递给C程序,我假设它将执行子集化。所有这些步骤对于最初较小的对象工作得更快。

如果你问它为什么这样构建......如果我知道的话。可能的情况下,C程序的限制改变或什么的。

备注:Ctrl +点击某个功能会引导您查看其代码。对于像这样的问题,它可能是有用的

+0

顺便说一句,当我尝试测试程序的各个部分时,我注意到我不能使用'.External2(C_dataviewer,x,title)''命令,因为它在查看函数外部提供了一个没有找到错误的对象。我试着定义另一个功能,但它不起作用。有谁知道为什么? – OganM 2014-11-14 21:15:11

相关问题