Сопоставлять метки с 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)"