【发布时间】:2018-05-30 17:15:16
【问题描述】:
我需要每天将 SPSS .sav 文件作为没有值标签的数据框导入 R。该文件有 120,000 多个 obs 并且还在增长。这个过程变得非常缓慢,所以我想确保我使用的是最快的方法。我一直在玩弄foreign、have 和 memisc 中的函数。如果有什么不同,我正在与 RDS 合作。
编辑:我的文件是 126343 x 33067 和 12.1 GB。我只是简单地运行以下代码:
library(haven)
data <- read_sav(file)
我无法共享此文件,但为了尝试复制,我做了:
library(haven)
n <- 126343
exd <- data.frame(c(replicate(2000, sample(letters, n, replace = TRUE),
simplify = FALSE),
replicate(1306, runif(n),
simplify = FALSE)))
dim(exd)
## [1] 126343 3306
tmp <- tempfile(fileext = ".sav")
write_sav(exd, tmp)
system.time(exd2 <- read_sav(tmp))
## user system elapsed
## 173.34 13.94 187.66
谢谢!
【问题讨论】:
-
我最终将文件保存为 csvs 并使用 data.table fread 函数: