我正在尝试创建一个SAS表,用于保存输出表的描述和名称,其中包括一个格式化日期。但是,输出包括未格式化的日期。
我的代码:
data tablenames;
infile datalines delimiter=',';
input description: $30. sastablename: $30.;
attrib datetoday format=yymmdd6.;
datetoday = date();
mergedtext=catx('_',sastablename,datetoday);
output;
datalines;
Table for Customers,TfC
Table for Sales,TfS
;代码输出为TfC_20688提供mergedtext变量。我想要的mergedtext变量的输出是TfC_160822。
发布于 2016-08-22 15:43:55
您需要让CATX()知道如何使用格式化的值。如果您的变量已经格式化,请尝试使用VVALUE()函数。否则,使用PUT()函数应用所需的格式。
data tablenames;
infile datalines delimiter=',';
input description: $30. sastablename: $30.;
attrib datetoday format=yymmddn8.;
datetoday = date();
mergedtext1=catx('_',sastablename,vvalue(datetoday));
mergedtext2=catx('_',sastablename,put(datetoday,yymmddn8.));
datalines;
Table for Customers,TfC
Table for Sales,TfS
;别用两位数的年份。
发布于 2016-08-22 13:31:34
您可以使用PUT()函数将date中的SAS (其值为20688)转换为您想要的yymmdd格式。
43 data tablenames;
44 infile datalines delimiter=',';
45 input description: $30. sastablename: $30.;
46 mergedtext=catx('_',sastablename,put(date(),yymmddn6.));
47 put mergedtext=;
48 output;
49 datalines;
mergedtext=TfC_160822
mergedtext=TfS_160822
NOTE: The data set WORK.TABLENAMES has 2 observations and 3 variables.https://stackoverflow.com/questions/39080582
复制相似问题