r - 在 R 中保存变量标签以便 Stata 可以读取它们

标签 r label stata data-management

我有一个包含超过 170 个变量的数据集,如下所示:

df <- data.frame(var1 = 1:3, var2 = 2:4, var3 = 2:4, var4 = 2:4, var5 = 2:4)

我已使用 Hmisc 手动添加变量值:

library(Hmisc)
var.labels = c(var1 = "label 1",
               var3 = "label 2",
               var4="label 4" )
label(df) = as.list(var.labels[match(names(df), names(var.labels))])              

请注意,并非所有变量都有标签,而且对于我来说,通过名称 (var*) 指定变量标签要容易得多,而不是根据大量列指定位置。

问题是,当我使用 write.csv(df,"df.csv")write.dta(df,"df.dta")< 保存数据集时 我的变量标签丢失了。

如何以可重新导入 R 和 Stata 并恢复标签的方式保存数据?

最佳答案

这有点棘手。您需要标记所有变量。如果您不想标记变量,可能仍需要添加 variable = ""。否则,write.dta 将忽略所有变量标签。

R

df <- data.frame(var1 = 1:3, var2 = 2:4, var3 = 2:4, var4 = 2:4, var5 = 2:4)
attr(df, "var.labels") <- c(var1 = "label 1", var2 = "label 2", 
              var3 = "", var4="label 4", var5 = "")
foreign::write.dta(df, "dat_stata.dta")

Stata中,您得到:

. des

Contains data from C:...dat_stata.dta
  obs:             3                          Written by R.              
 vars:             5                          
 size:            60                          
------------------------------------------------------------------------------------------------------
              storage   display    value
variable name   type    format     label      variable label
------------------------------------------------------------------------------------------------------
var1            long    %9.0g                 label 1
var2            long    %9.0g                 label 2
var3            long    %9.0g                 
var4            long    %9.0g                 label 4
var5            long    %9.0g                 
------------------------------------------------------------------------------------------------------
Sorted by: 

请注意:我使用了Stata 14Rforeign

关于r - 在 R 中保存变量标签以便 Stata 可以读取它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58288549/

相关文章:

d3.js - 如何正确地使文本宽度达到图形栏上方的中心标签?

mysql - 如何在Stata中使用准备好的语句?

excel - 将 png 图形文件从 Stata 写入 Excel

r - ArcGIS 类似于 R for Rasters 中的拉伸(stretch)配色方案

r - 管道 Rscript 在输出后出错

label - 如何调整标签的宽度?

linux - 在 Sublime Text 3 中,我可以将选择的 do 文件发送到 Stata 吗?

r - R绘制所有轴标签(防止被跳过)

r - 使用 pip 为 Python 3 安装 rpy2

css - 创建 CSS 以放大复选框