这是一个很小的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没有任何区别。我错过了什么,或者这可能是某种错误?
答案 0 :(得分:1)
Stata不区分空字符串和缺失值,如文档(help missing
)中所述:
Stata has one string missing value, which is denoted by "" (blank)
在导入R之后将空字符串转换为NA很容易,例如,
test[test == ""] <- NA