Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在R中加载.dta(保存标签)最合适?_R_Read Data_R Haven - Fatal编程技术网

如何在R中加载.dta(保存标签)最合适?

如何在R中加载.dta(保存标签)最合适?,r,read-data,r-haven,R,Read Data,R Haven,我使用.dta文件,并尝试使加载数据尽可能舒适。在我看来,我需要haven和readstata13的组合 黑文看起来很完美。它提供了最好的子标签。但它不提供列选择器功能。我无法在64 GB RAM、Intel Xeon E5上对~1 GB/的大文件使用read_dta。 问题:是否有方法选择/加载数据子集 read.dta13是我最好的解决方法。它有select.cols。但我必须稍后获取attr,保存并合并它们,大约10个文件 问题:如何手动添加haven软件包创建的第二个标签?他们怎么称呼

我使用.dta文件,并尝试使加载数据尽可能舒适。在我看来,我需要haven和readstata13的组合

黑文看起来很完美。它提供了最好的子标签。但它不提供列选择器功能。我无法在64 GB RAM、Intel Xeon E5上对~1 GB/的大文件使用read_dta。 问题:是否有方法选择/加载数据子集

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)
haven支持使用col_select参数选择列:

libraryhaven开发工具::安装
mtcars非常感谢这一发展。col_select功能使haven变得完美,不再需要使用其他软件包。但是dev版本的安装对我来说不起作用,它说错误:未能从GitHub安装'haven':从警告安装包'XX/haven_2.1.1.9000.tar.gz'转换而来,具有非零退出状态OK,我必须手动删除库中的00LOCK haven文件夹。然后它成功了。展望haven的新版本。
for (i in seq_along(mtcars2)) {
  attr(mtcars2[[i]], "label") <- var.labels[i]
}

View(mtcars2)