R - read.dta()无法识别缺失值

时间:2014-03-09 02:49:06

标签: r stata

这是一个很小的Stata文件:location_missing.dta

只有一个字段(“location_state”)。请注意,我只从这个问题的原始数据中提取了缺失值。在Stata中,所有记录都被识别为缺失:

gen test = missing(location_state)
tab test

   test |      Freq.     Percent
------------+-------------------
      1 |      6,098      100.00
------------+-------------------
  Total |      6,098      100.00

但是当我使用来自库(外部)的read.dta()或来自库(memisc)的Stata.file()将数据导入R时,所有记录都显示为空白而不是NA,所以这样的功能如此因为na.omit()不起作用。例如:

> library(foreign)
> test <- read.dta("location_missing.dta")
> all(complete.cases(test))
[1] TRUE
# Had to explicitly remove the missing values (blanks):
> test1 <- subset(test, location_state != "")

Saveold在Stata没有任何区别。我错过了什么,或者这可能是某种错误?

1 个答案:

答案 0 :(得分:1)

Stata不区分空字符串和缺失值,如文档(help missing)中所述:

Stata has one string missing value, which is denoted by "" (blank)

在导入R之后将空字符串转换为NA很容易,例如,

test[test == ""] <- NA