Stata--Конвертация дат

У меня есть даты в CSV, и я впервые сталкиваюсь с этой проблемой, когда при преобразовании дат из CSV в Stata я получаю пропущенные значения. Я обычно использую:

У меня есть переменная из Excel, 'xdate'

gen stata_date = дата (xdate, "mdy")

Обычно это работает, но для этого набора данных я получаю все пропущенные значения.

В Excel категория формата — «Дата», а тип — *14.03.2001. Как ни странно, когда я меняю формат на пользовательский мм/дд/гггг (когда я перехожу к пользовательскому формату, теперь он находится в формате м/д/гггг), а затем повторно запускаю свой .DO, даты прекрасно переводятся, но когда я перезапускаю Stata и запускаю файл . DO без этого ручного изменения я получаю все недостающие значения.

Есть идеи?


person FJ17    schedule 30.09.2012    source источник
comment
Больше похоже на проблему Excel, чем на проблему Stata. Вы жестко кодируете даты в файлах Excel? Вы должны специально скопировать и вставить их как значения, чтобы освободиться от слоя форматирования, который Excel накладывает на данные при отображении их в виде электронной таблицы.   -  person Fr.    schedule 30.09.2012


Ответы (1)


Добавлено: 13.10.2012. Другой пользователь Stata указал, что «mdy» в функции date() должно быть «MDY».

Если исправление этой ошибки не решит проблему, изучите CSV-файл, чтобы узнать, что вы отправляете Stata:

clear
set obs 1
gen xdate = "3/14/2001"

split xdate, p("/")

• -split- будет жаловаться, если в дате строки есть какие-либо нечисловые символы, кроме "/". Чтобы узнать, что это такое, я рекомендую команду Ника Кокса -charlist- (из SSC).

• xdate1, xdate2 и xdate3 должны быть месяцем, днем ​​и годом. Вы можете просмотреть их с помощью -tab- и -codebook-. После исправления любых ошибок надежный способ создания даты:

gen xmonth = real(xdate1)
gen xday = real(xdate2)
gen xyear = real(xdate3)
gen newdate=mdy(xmonth,xday,xyear)
person Steve Samuels    schedule 10.10.2012