Есть ли способ добавить данные CSV в Stata, где переменная изменяется между строковым и числовым - без потери данных? - PullRequest
0 голосов
/ 29 сентября 2019

У меня есть множество сгенерированных наблюдений, которые я хочу импортировать в Stata - все числовые.С кодом ниже это не было проблематично, пока я не сделал переменные, которые имели бы нерелевантные значения в определенных настройках модели, имели NA в качестве значения.Теперь, когда Stata сталкивается с этим, он выдает:

variable p_bikepaths is str2 in master but float in using data
    You could specify append's force option to ignore this string/numeric mismatch.  The using variable would then be
    treated as if it contained "".

Добавление опции force к append означает, что все числовые наблюдения для этой переменной (важные наблюдения) теперь заменены на "".

cd "E:\data-directory\"

clear
local satafiles: dir . files "*.csv"

foreach file of local satafiles {
    preserve
    insheet using `"`file'"',clear
    save temp,replace
    restore
    append using temp
}
*remove the temporary .dta file
rm temp

save alldata, replace

У кого-нибудь есть какие-нибудь решения для этого?Есть около 6000 CSV-файлов, которые нужно было бы изменить в противном случае, и я надеюсь избежать запуска моей модели еще 8 часов, ха-ха.

1 Ответ

0 голосов
/ 29 сентября 2019
destring *, ignore("NA") replace 

достаточно для исправления иначе числовой переменной, которая была прочитана как строковая переменная из-за значений "NA".

Если я правильно понимаю, вам нужно это между insheet и save.

insheet - старая команда, в значительной степени замененная import delimited.

...