[英]Converting R file to Stata with missing string values
將 R 文件轉換為 Stata 格式時出現錯誤。 我能夠將數字轉換為 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
我有幾個字符串,如位置、名稱等,其中缺少可能導致此問題的值。 有沒有辦法處理這個? .
我之前多次遇到此錯誤,並且很容易重現:
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 將字符串變量正確讀取為字符串。
您可以使用出色的
readstata13<\/code>包(
readstata13<\/code>導入
Rcpp<\/code>包)。
readstata13::save.dta13(mtcars, 'mtcars.dta')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.