簡體   English   中英

將 R 文件轉換為缺少字符串值的 Stata

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM