SAS中如何将DOWNAME.格式的星期转为字符变量导出Excel?
解决方法
问题出在你只是给日期变量添加了显示格式,变量本身还是数值型的日期值——SAS里的日期本质是从1960年1月1日开始累计的天数。导出到Excel时,Excel会识别这个数值并当成日期处理,覆盖掉SAS的格式显示。
要得到真正的字符型星期名称,需要用PUT()函数将日期变量转换为字符变量,具体写法如下:
1. DATA步写法
data 新数据集; set 原数据集; DayOfWeek = PUT(date, DOWNAME.); /* 生成字符型星期名称 */ run;
2. PROC SQL写法
proc sql; create table 新数据集 as select date, PUT(date, DOWNAME.) AS DayOfWeek from 原数据集; quit;
这样生成的DayOfWeek变量是纯字符类型,存储的就是Tuesday这类文本值,导出到Excel时会直接显示星期名称,不会被识别为日期。
内容的提问来源于stack exchange,提问作者John Doe
相关产品推荐
相关产品推荐

