将R文件转换为缺少字符串值的Stata [英] Converting R file to Stata with missing string values
本文介绍了将R文件转换为缺少字符串值的Stata的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
library(foreign)
write.dta(newdata, "X.dta")
Error in write.dta(newdata, "X.dta") :
empty string is not valid in Stata's documented format
我有几个字符串,如Location、Name等,它们有可能导致此问题的缺失值。有没有办法处理这件事?
推荐答案
我以前多次遇到过此错误,很容易重现:
library(foreign)
test <- data.frame(a = "", b = 1, stringsAsFactors = FALSE)
write.dta(test, 'example.dta')
一种解决方案是使用因子变量而不是字符变量,例如
for (colname in names(test)) {
if (is.character(test[[colname]])) {
test[[colname]] <- as.factor(test[[colname]])
}
}
另一种方法是将空字符串更改为其他字符串,然后在Stata中将它们改回。
这纯粹是write.dta
的问题,因为Stata完全可以处理空字符串。但由于foreign
已冻结,您对此无能为力。
更新:(2015-12-04)更好的解决方案是在haven
包中使用write_dta
:
library(haven)
test <- data.frame(a = "", b = 1, stringsAsFactors = FALSE)
write_dta(test, 'example.dta')
这样,Stata将字符串变量正确读取为字符串。
这篇关于将R文件转换为缺少字符串值的Stata的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文