2017-04-11 4 views
1

나는 다음과 같은, 엑셀은 월/일/년 형식의 날짜와 문자열 변수를 포함 STATA로 파일을 가져온 :긴 날짜를 어떻게 연도로 변환 할 수 있습니까?

 +--------------------------+ 
    |  country  Election | 
    |--------------------------| 
    1. | New Zealand 11/29/1969 | 
    2. | New Zealand 11/25/1972 | 
    3. | New Zealand 11/27/1999 | 
    4. | New Zealand 11/25/1972 | 
    5. | New Zealand 09/17/2005 | 
    +--------------------------+ 

내 의도는 단지 해가 나타나도록 날짜를 변환하는 것입니다.

gen year = date(Election, "MDY")을 사용하여 float 유형의 새 날짜 변수를 만들었습니다. 그러나, 어떻게 진행 해야할지 모르겠습니다. 어떻게 이러한 날짜를 수년으로 바꿀 수 있습니까?

+1

"help datetime"특히 "SIF-SIF 변환"섹션에서 "날짜"를 "연간"로 변환하십시오. 기존 변수를'replace '하는 대신 새로운 변수를 생성하는 것을 추천한다. –

+1

감사합니다! 나는 그것을 체크하고 명령을 실행했다 : generate Year_only = yofd (year). 그것은 완벽하게 작동했습니다. – Adrian

답변

0

답변이 있지만 관심있는 다른 사용자를 위해 맞춤법을 알려 드리겠습니다.

변수 year은 매일 날짜 변수이므로 잘못된 이름입니다. 무슨 일이 일어나고 있는지 밑줄을 긋기 위해 date() 대신에 daily() 기능을 사용하는 것이 좋습니다. 그것은 다른 모습으로 같은 코드입니다. 변환하려면 yofd()이 필요합니다.

clear 
input str11 (country Election) 
"New Zealand" "11/29/1969" 
"New Zealand" "11/25/1972" 
"New Zealand" "11/27/1999" 
"New Zealand" "11/25/1972" 
"New Zealand" "09/17/2005" 
end 
gen dailydate = daily(Election, "MDY") 
format dailydate %td 
gen yeardate = yofd(dailydate) 
list 


    +-------------------------------------------------+ 
    |  country  Election dailydate yeardate | 
    |-------------------------------------------------| 
    1. | New Zealand 11/29/1969 29nov1969  1969 | 
    2. | New Zealand 11/25/1972 25nov1972  1972 | 
    3. | New Zealand 11/27/1999 27nov1999  1999 | 
    4. | New Zealand 11/25/1972 25nov1972  1972 | 
    5. | New Zealand 09/17/2005 17sep2005  2005 | 
    +-------------------------------------------------+