使用向量标记R中的变量

使用向量标记R中的变量,r,stata,R,Stata,我有一个向量,如下所示 label_names<-c("A","B","C") label\u name根据我有限的经验,R不像Stata那样频繁地使用标签。你仍然可以做到。您需要两个软件包:expss和haven: 在r中,使用expss::apply_labels分配变量标签和值标签。我仅将变量标签用于演示: df <- data.frame(year = c(2017, 2018, 2019), age = c(25, 30, 40),

我有一个向量,如下所示

label_names<-c("A","B","C")

label\u name根据我有限的经验,
R
不像
Stata
那样频繁地使用标签。你仍然可以做到。您需要两个软件包:
expss
haven

r
中,使用
expss::apply_labels
分配变量标签和值标签。我仅将变量标签用于演示:

df <- data.frame(year = c(2017, 2018, 2019), 
                 age = c(25, 30, 40), 
                 bmi = c(23.2, 28.3, 32))
# assign labels in r 
df  = expss::apply_labels(df, 
                   year = "Survey year",
                   age = "Age, years",
                   bmi = "BMI, kg/m2"
  )
# export to Stata
haven::write_dta(df, "havenstata.dta")

虽然有一些解决方案,但我认为在导出到
Stata
后,在
Stata
中标记数据可能更容易

“分配”是什么意思?是否要将其作为第四个变量添加到数据帧中?还是要将列名(var1、var2、var3)更改为标签名称?或者你想用标签名称的标签从你的变量中提取一个因子(这在这里没有意义,因为标签与唯一的可能性不匹配)?也许
attr(df,“label_names”)
names(df)当我应用你提到的方法导出数据时,STATA仍然不显示变量标签@Annet标签名称和列名遵循相同的顺序,因此标签不需要匹配唯一的可能性。
df <- data.frame(year = c(2017, 2018, 2019), 
                 age = c(25, 30, 40), 
                 bmi = c(23.2, 28.3, 32))
# assign labels in r 
df  = expss::apply_labels(df, 
                   year = "Survey year",
                   age = "Age, years",
                   bmi = "BMI, kg/m2"
  )
# export to Stata
haven::write_dta(df, "havenstata.dta")
. des

Contains data from C:\...\havenstata.dta
  obs:             3                          
 vars:             3                          24 Dec 2019 22:17
 size:            72                          
------------------------------------------------------------------------------------------------------
              storage   display    value
variable name   type    format     label      variable label
------------------------------------------------------------------------------------------------------
year            double  %10.0g                Survey year
age             double  %10.0g                Age, years
bmi             double  %10.0g                BMI, kg/m2
------------------------------------------------------------------------------------------------------
Sorted by: