【问题标题】:Loading .dta data into R takes long time将 .dta 数据加载到 R 中需要很长时间
【发布时间】:2015-04-11 04:31:52
【问题描述】:

一些机密数据存储在服务器上,研究人员可以通过远程访问进行访问。

  • 研究人员可以通过一些(我认为是 cisco)远程客户端登录,并在同一主机上共享虚拟机
  • 虚拟机上运行的是 64 位 Windows

系统似乎针对 Stata 进行了优化,我是最早使用 R 使用数据的人之一。客户端上没有安装 RStudio,只有 RGui 3.0.2

这是我的问题:数据以stata格式保存(.dta),我需要在R中打开它。目前我正在做

read.dta(fileName, convert.factors = FALSE)[fields]

加载较小的文件(大约 200MB)需要 1-2 分钟。但是,加载主文件(3-4 GB)需要很长时间,比我的耐心要长。在此期间,R GUI 不再响应。

我可以在我自己的机器(OS X、RStudio)上使用较小的数据样本测试我的代码,一切正常。这是吗

  • 因为 OS X + RStudio,或者只是
  • 因为文件的大小?

一所大学正在他们环境中的类似文件上使用Stata,这对他来说效果很好。

我可以做些什么来改善这种情况?我想出的可能解决方案是

  • 以某种不同的方式将数据加载到R(也许有一种方法不需要所有这些内存使用)。我也可以访问stata。如果一切都失败了,我可以在 Stata 中准备数据,例如将其切成小块并在 R 中重新组合
  • 要求他们为我的 VM 用户分配更多内存(如果确实是这个问题)
  • 要求他们提供 RStudio 作为后端(即使这不是更快,也许它更不容易崩溃)

【问题讨论】:

  • 你试过haven包吗?
  • @ColonelBeauvel 我会检查我的小数据样本是否会更快。有没有办法生成人工的大型 stata 数据,只是为了比较加载时间?
  • 是的,以 200MB 为例,然后多次聚合到 2GB-3GB,看看加载时间如何演变。

标签: r


【解决方案1】:

当然,文件的大小是主要因素,但机器和配置也可能是主要因素。没有更多信息很难说。您需要 64 位操作系统和 64 位版本的 R。

我不认为 RStudio 会帮助或阻碍这个过程。

如果该过程呈线性扩展,则意味着您的大数据案例将需要 (120 秒)*(4096 MB/200 MB) =2458 秒,或大约四分之三小时。你等了多久?

过程可能不是线性的。

处理器是否取得了进展?如果您检查 CPU 和内存,该进程是否仍在运行?它做了很多页面交换吗?

【讨论】:

  • 进程仍在运行,应用程序没有响应。正在使用的 RAM 量不断增加,CPU 使用率保持不变且为正。 RAM 和 CPU 的绝对值对我来说很难解释,因为它们显然是在其他用户之间共享的
猜你喜欢
  • 2017-08-10
  • 2019-01-19
  • 2017-06-26
  • 2019-08-03
  • 2019-04-10
  • 1970-01-01
  • 1970-01-01
  • 2019-12-20
  • 2022-11-11
相关资源
最近更新 更多