我使用 .dta 文件并尝试使加载数据尽可能舒适。在我看来,我需要haven
和的组合readstata13
。
haven
看起来很完美。它提供了最好的“子标签”。但它不提供列选择器功能。我不能read_dta
用于大文件(~ 1 GB / 64 GB RAM,Intel Xeon E5)。 问题:有没有办法选择/加载数据子集?read.dta13
是我最好的解决方法。它有select.cols
. 但我必须attr
稍后再保存并合并它们(大约 10 个文件)。问题:如何手动添加
haven
包创建的这些第二个标签?(他们怎么称呼?)
这是MWE:
library(foreign)
write.dta(mtcars, "mtcars.dta")
library(haven)
mtcars <- read_dta("mtcars.dta")
library(readstata13)
mtcars2 <- read.dta13("mtcars.dta", convert.factors = FALSE, select.cols=(c("mpg", "cyl", "vs")))
var.labels <- attr(mtcars2,"var.labels")
data.key.mtcars2 <- data.frame(var.name=names(mtcars2),var.labels)