Formatting SAS格式:整月名称为整数
在SAS中将整月名称格式化为整数的最佳方式是什么 “一月”->1Formatting SAS格式:整月名称为整数,formatting,sas,Formatting,Sas,在SAS中将整月名称格式化为整数的最佳方式是什么 “一月”->1 “二月”->2您可以制作自己的格式: 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.);
“二月”->2您可以制作自己的格式:
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;
您可以制作自己的格式:
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;
这取决于您将如何在代码中使用它。如果您需要在代码的多个部分重复此映射,那么我建议您使用PROC格式创建一个自定义格式,该格式可以在数据步骤或其他过程中使用。如果您只是在一个数据步骤中执行此映射,那么您可以使用SELECT/WHEN或If/ELSE If逻辑执行相同的操作。在SAS中有许多其他方法可以实现这一点,但我认为这两种方法是最直接的。这取决于您将如何在代码中使用它。如果您需要在代码的多个部分重复此映射,那么我建议您使用PROC格式创建一个自定义格式,该格式可以在数据步骤或其他过程中使用。如果您只是在一个数据步骤中执行此映射,那么您可以使用SELECT/WHEN或If/ELSE If逻辑执行相同的操作。在SAS中有许多其他方法可以实现这一点,但我认为这两种方法是最直接的。一种使用输入函数将字符类型转换为数字类型的方法。但我同意,创建自定义格式更好
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;
一种使用输入函数将字符类型转换为数字类型的方法。但我同意,创建自定义格式更好
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;
您可以在没有格式的情况下执行此操作:
data test;
monthtext="January";
month=month(input("01"||substr(monthtext,1,3)||"2000",date9.));
run;
您可以在没有格式的情况下执行此操作:
data test;
monthtext="January";
month=month(input("01"||substr(monthtext,1,3)||"2000",date9.));
run;