Сопоставлять метки с na_tags

haven Пакет сохраняет как метки значений, так и маркированные NA при чтении файлов Stata/SPSS. Например, в переменной 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? В этом примере мы можем сделать вывод, что d,i, а также n теги, вероятно, соответствуют DK, IAP, а также NA Этикетки, соответственно, основаны только на их письмах (и мы всегда можем проверить документацию), но я бы хотел сделать это программно, если это возможно.

Это было бы полезно, если, например, вы хотите создать таблицу конкретной переменной, которая отображает значения переменной вместе с их соответствующими метками, в том числе для помеченных NA.

1 ответ

Решение

Глядя на определение print_labels Я вижу, что теги и метки связаны так:

format_tagged_na(attr(gss$wrkslf, "labels"))
self-employed  someone else            DK           IAP            NA 
      "    1"       "    2"       "NA(d)"       "NA(i)"       "NA(n)" 
Другие вопросы по тегам