【发布时间】:2021-01-07 17:57:44
【问题描述】:
我在我的项目中同时使用 Stata 和 R,我想在 R 中标记变量,以便 Stata 正确读取它们。
以以下数据库为例,其中包含在 Stata 中正确标记的 12 个变量
* these are Stata commands
sysuse auto
save sysuseauto.dta
我可以将数据导入R
# import
library(haven)
library(data.table)
auto<-read_dta("sysuseauto.dta")
请注意,R 维护 Stata 中指定的所有变量标签。 我想在 R 中创建一个新变量
# Creating a new variable
sapply(auto,class)
auto<-setDT(auto)[,n_cars_by_foreign:=.N,by=.(foreign)]
并标记它,以便当我在 Stata 中打开新数据时,它被正确标记。
但是,我无法标记变量以便 Stata 读取它。 我已经尝试了以下
attr(auto, "haven_labelled") <- c(n_cars_by_foreign = "Number of cars by foreign")
write_dta(auto, "sysuseauto2.dta")
# and
attr(auto, "var.labels") <- c(n_cars_by_foreign = "Number of cars by foreign")
write_dta(auto, "sysuseauto3.dta")
但是,不仅标签没有出现使用View(data)的变量名,而且当我将sysuseauto2.dta和sysuseauto3.dta导入Stata时,新变量也没有正确标记。
有人知道如何解决这个问题吗?
非常感谢您的帮助
【问题讨论】:
-
你运行的是哪个 Stata 版本?