繁体   English   中英

将标签与 na_tags 匹配

[英]match labels with na_tags

在读取 Stata/SPSS 文件时, haven包会保留值标签和标记的 NA。 例如,在 GSS 的自雇变量中,标签表明存在三种不同类型的 NA 值:

library(tidyverse)
library(haven)

download.file(url="http://gss.norc.org/Documents/stata/2016_stata.zip",
              destfile = "2016_stata.zip")
unzip("2016_stata.zip")

gss <- read_dta("GSS2016.dta")

attr(gss$wrkslf, "labels")
#> self-employed  someone else            DK           IAP            NA 
#>             1             2            NA            NA            NA

查看该变量的na_tag() ,我们可以确认存在三种类型的 NA 标签:

table(na_tag(gss$wrkslf))
#> 
#>  d  i  n 
#>  4 90  5

我的问题是,我们如何找出labels哪些字符串对应于哪些 NA 标签? 在这个例子中,我们可以推断din标签可能仅根据它们的字母分别对应于DKIAPNA标签(我们可以随时查看文档),但我想要一种方法如果可能,以编程方式执行此操作。

例如,如果您想生成一个特定变量的表格,该表格将变量的值与其关联的标签一起显示,这将非常有用,包括标记的 NA。

查看print_labels的定义,我看到 na 标签和标签是这样关联的:

format_tagged_na(attr(gss$wrkslf, "labels"))
self-employed  someone else            DK           IAP            NA 
      "    1"       "    2"       "NA(d)"       "NA(i)"       "NA(n)" 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM