【问题标题】:why does the `View` function takes so long to run?为什么 `View` 函数需要这么长时间才能运行?
【发布时间】:2014-11-14 18:31:53
【问题描述】:

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

这是 2MM 行 9 列数据帧的时序

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

在 RStudio 中,该函数只显示前 1000 行,所以如果我这样做 View(bd_cadastral[1:1000,]:

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

这不应该花费大约相同的时间吗?

【问题讨论】:

  • 在 200 万行上制作一个类似电子表格的 html 文档需要一点时间。是什么让您认为 1000 行将花费与 200 万行相同的时间?
  • 我可以想象,但为什么该函数在每一行都制作电子表格,只显示前 1000 个?
  • 我真的觉得这个问题应该直接去RStudio开发组问:P

标签: r rstudio


【解决方案1】:

如果您查看函数内部,您会发现它并没有直接获取要显示的子集。它首先尝试将整个内容强制转换为数据框,并在可能转换的输入上使用lapplysapply。甚至在最后,它会将整个变量传递给我假设做子集的 C 程序。对于最初较小的对象,所有这些步骤都可以更快地工作。

如果你问为什么它是这样建造的……如果我知道的话,见鬼。可能是在c程序更改或其他情况下的限制。

旁注:Ctrl+单击一个函数会引导您找到它的代码。对于这样的问题,它可能很有用

【讨论】:

  • 顺便说一句,当我尝试测试程序的各个部分时,我注意到我不能使用.External2(C_dataviewer, x, title) 命令,因为它在视图函数之外给出了一个找不到对象的错误。我尝试定义另一个函数,但它不起作用。有人知道为什么吗?
猜你喜欢
  • 1970-01-01
  • 2017-09-22
  • 2020-11-08
  • 2019-11-13
  • 1970-01-01
  • 1970-01-01
  • 2020-08-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多