2013-08-14 5 views
5

저는 Stata를 처음 접했고 날짜 형식을 포함하는 문자열 변수를 어떻게 변경할 수 있는지 궁금합니다. 변수에Stata : 문자열 변수를 날짜로 변경하는 방법은 무엇입니까?

데이터는 다음과 같습니다

YYYY-MM-DD STATA 나중에 gen var = date()를 사용하기 위해 포맷을 인식 할 수 있도록

내가 먼저 대시를 제거해야 하는가?

도움 주셔서 감사합니다.

+0

당신이 필요한 대답을 얻었습니까? \ –

+0

"형식"이라는 단어는 위험한 단어입니다. 날짜를 유지하기위한 패턴 또는 스타일 인 "yyyy-mm-dd"는 형식 (의미 1)입니다. Stata의 일일 날짜 표시 형식을'format' 명령으로 지정하는 것은 Stata의 단어 감각 (sense 2)이지만 충분하지 않습니다. 날짜 형식 (의미 3)은 일일 날짜가 숫자로 저장되고 1960 년 1 월 1 일을 기준으로 계산되는 것을 의미합니다. –

답변

8

처럼 STATA에서 데이터를 변환하거나하는 방법을 볼 수 here 볼 수 있습니다. 마스크라고

generate v2 = date(v1, "YMD") 
format %td v2 

YMD을, 그리고 그것을 알려줍니다 : 날짜가 v1에서 양식 yyyy-mm-dd에있는 경우 사용자가 명령을 지정할 수 있습니다 "날짜 기능"섹션에서

help datetime_translation보기 Stata는 날짜의 일부가 지정된 순서입니다. 두 번째 줄은 변수에 Stata 일일 형식을 할당합니다. 즉, 데이터에서 변수를 볼 때 사람이 읽을 수있는 형식으로 표시됩니다. 그러나 날짜는 1960 년 1 월 1 일 이후의 일 수로 저장됩니다. date 기능을 실험하는 가장 좋은 방법은 display 명령을 사용하는 것입니다. 첫 번째 행은 1960 년 1 월 1 일 이후의 일 수를 나타내는 정수를 표시합니다. 두 번째 행은 사람이 읽을 수있는 형식으로 날짜를 표시합니다.

display date("2013-08-14", "YMD") 
display %td date("2013-08-14", "YMD") 
+1

약간의 서식 지정에 대한 설명을 편집했습니다. 사람들은 저장된 형식을 변경하여 표시 형식을 할당하는 것을 종종 혼동합니다. 당신의 말씨는 좋았지 만, 나는 그것을 더 단단히했습니다. –

+0

저에게 도움이 된 덕분에! – roland

+0

당신은 생명의 은인 !!! – Abramodj

1

당신은 STATA date 기능은 분리 문자를 제거하는 방법에 대한 영리이

tostring datedx, replace 
generate str4 dxyr1= substr(datedx,1,4) 
generate str2 dxmo1 = substr(datedx,6,7) 
generate str2 dxda1 = substr(datedx,9,10) 
destring dx*, replace 
gen datedx1 = mdy(dxmo1, dxda1, dxyr1) 
+1

OP는 문자열 변수로 시작하므로 'tostring'은 중복되지만 무해합니다. @sechilds의 대답처럼'date()'함수를 사용하면 훨씬 더 직접적입니다. –

+0

@NickCox 예 선생 –

관련 문제