2012-02-15 4 views

답변

2

:

data test; 
    monthtext="January"; 
    month=month(input("01"||substr(monthtext,1,3)||"2000",date9.)); 
run; 
4

당신은 당신의 자신의 형식을 만들 수 있습니다

options fmtsearch=(work); 

proc format; 
invalue MonNum 
    JANUARY = 1 
    FEBRUARY = 2 
    ; 
run; 

data Month; 
length month $10; 
input Month $; 
month=upcase(month); 
monthnum=input(month,monnum.); 
datalines; 
    January 
    February 
    ; 
Run; 

Proc report data=work.month nowd; 
column month monthnum; 
run; 
0

그것은 당신이 당신의 코드에서이를 사용하려는 방법에 따라 달라집니다 . 코드의 여러 섹션에서이 매핑을 반복해야하는 경우 데이터 단계 나 다른 절차에서 사용할 수있는 PROC FORMAT을 사용하여 사용자 지정 형식을 만드는 것이 좋습니다. 하나의 데이터 단계에서이 매핑을 수행하는 경우 SELECT/WHEN 또는 IF/ELSE IF 논리를 사용하여 동일한 작업을 수행 할 수 있습니다. SAS에서이 작업을 수행 할 수있는 여러 가지 방법이 있지만이 두 가지 방법이 가장 간단하다고 생각합니다.

1

입력 기능을 사용하여 문자 유형을 숫자 유형으로 변환하는 접근 방식. 그러나 나는 사용자 정의 형식을 만드는 것이 더 낫다는 것에 동의 할 것입니다.

data test;  
    input monthchar $15.; 
    datalines; 
    December 
    January 
    March 
    ; 
    run; 

data test; 
    set test; 
    monthnum=month(input(cats(1,substr(monthchar,1,3),2000),date9.)); 
    run; 
당신은 형식없이이 할 수