如何在 R 中最舒适地加载 .dta(保留标签)?

How to load .dta (preserving labels) most comfortable in R?

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

这是 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)

havendevelopment version 支持使用 col_select 参数选择列:

library(haven) # devtools::install_github("tidyverse/haven")
mtcars <- read_dta("mtcars.dta", col_select = c(mpg, cyl, vs))

或者; RStudio 查看器中的列标签取自数据框列的 "label" 属性。您可以使用一个简单的循环从 readstata13:

读取的标签中分配它们
for (i in seq_along(mtcars2)) {
  attr(mtcars2[[i]], "label") <- var.labels[i]
}

View(mtcars2)