1

我在 Rhaven包中发现了一个错误,write_dta在 Stata 中读取它时会丢失一些标签。我已经提交了错误haven但我真的需要找到解决方法,直到错误得到修复。下面是解释。

让我们定义一个只有一个标记NA值的标记双精度。

library(haven)
#> Warning: package 'haven' was built under R version 3.4.4

tst <-
  labelled(
    c(
      1:5,
      tagged_na("d")
    ),
    c(
      "Agree Strongly" = 1,
      "Agree" = 2,
      "Neither agree nor disagree" = 3,
      "Disagree" = 4,
      "Disagree strongly" = 5,
      "No answer" = tagged_na("d")
    )
  )

tst
#> <Labelled double>
#> [1]     1     2     3     4     5 NA(d)
#> 
#> Labels:
#>  value                      label
#>      1             Agree Strongly
#>      2                      Agree
#>      3 Neither agree nor disagree
#>      4                   Disagree
#>      5          Disagree strongly
#>  NA(d)                  No answer

write_dta(data.frame(freehms = tst), "test.dta", version = 13)

如果我在 Stata 中加载它并输入tab freehms,所有标签都是正确的:

屏幕截图 2019-02-23 at 4 06 36 pm

现在,如果我使用上面的代码并添加另一个标记NA值,然后write_dta出于某种原因删除最后一个标签:

library(haven)
#> Warning: package 'haven' was built under R version 3.4.4

tst <-
  labelled(c(1:5,
             tagged_na('d'),
             ## Only added this
             tagged_na('c')
          ),
        c('Agree Strongly' = 1,
          'Agree' = 2,
          'Neither agree nor disagree' = 3,
          'Disagree' = 4,
          'Disagree strongly' = 5,
          'No answer' = tagged_na('d'),
            ## And this
          'Dont know' = tagged_na('c')
          )
        )

tst
#> <Labelled double>
#> [1]     1     2     3     4     5 NA(d) NA(c)
#> 
#> Labels:
#>  value                      label
#>      1             Agree Strongly
#>      2                      Agree
#>      3 Neither agree nor disagree
#>      4                   Disagree
#>      5          Disagree strongly
#>  NA(d)                  No answer
#>  NA(c)                  Dont know

write_dta(data.frame(freehms = tst), "test.dta", version = 13)

屏幕截图 2019-02-23 at 4 08 29 pm

我已经查看了该write.dta功能,foreign但它似乎不支持版本 11 之后的 Stata 版本。还有其他解决方法吗?

4

1 回答 1

0

尝试包括缺失选项以可视化缺失值的摘要,如图所示

tab freehms, mi

于 2019-03-08T09:52:29.577 回答