Hello everybody,
I have numeric variables which are showed below:
SAS Output:
Checking numeric variables in the patients data set | |||||
The MEANS Procedure | |||||
Variable | Label | N | N Miss | Minimum | Maximum |
Price | Price | 21174589 | 0 | 0.85 | 4050002 |
Turnover | Turnover | 21174589 | 0 | 1 | 9.84E+08 |
Date | date | 21174589 | 0 | 17615 | 19435 |
Time | 21174589 | 0 | 30649 | 82126 |
I don't want to format variables and just want to read date and time variables of this table like hh:mm and dd:mm:yy.
How can I do that?
Thanks in advance
How much does the format of the table matter to you?
Why not just have PROC MEANS generate a dataset and then print that?
data test;
input id $ price turnover date time;
format date date9. time time5. ;
cards;
min 0.85 1 17615 30649
max 4050002 9.84E+08 19435 82126
;
proc means noprint data=test;
output out=xx ;
run;
proc print data=xx;
where _stat_='N';
format _all_;
run;
proc print data=xx;
where _stat_ in ('MIN','MAX');
run;
Obs _TYPE_ _FREQ_ _STAT_ price turnover date time 1 0 2 N 2 2 2 2 Obs _TYPE_ _FREQ_ _STAT_ price turnover date time 2 0 2 MIN 0.85 1 24MAR2008 8:30 3 0 2 MAX 4050002.00 984000000 18MAR2013 22:48
Are you asking to have PROC MEANS display the minimum date as 21Jul1969 instead of 3489?
Did you paste this table from Excel?
Just a bit of terminology so we all speak the same language:
Initial date and time variable were character were *converted* to numeric, and now you want them *formatted* to date and time.
That's done with a format statement. For example:
format DATEVAR date9. TIMEVAR time.;
How about this?
data SAMPLEDATA01;
set SAMPLEDATA;
TRD_EVENT_DT = datepart(TRD_EVENT_DT);
format TRD_EVENT_DT date9. TRD_EVENT_TM time.;
run;
Where did you see a $ in the code I posted?
$ formats are for character variables.
Or do you have a character variable?
What exactly do you have?
Provide: variable name, type, and value, for each of the 2 variables.
How much does the format of the table matter to you?
Why not just have PROC MEANS generate a dataset and then print that?
data test;
input id $ price turnover date time;
format date date9. time time5. ;
cards;
min 0.85 1 17615 30649
max 4050002 9.84E+08 19435 82126
;
proc means noprint data=test;
output out=xx ;
run;
proc print data=xx;
where _stat_='N';
format _all_;
run;
proc print data=xx;
where _stat_ in ('MIN','MAX');
run;
Obs _TYPE_ _FREQ_ _STAT_ price turnover date time 1 0 2 N 2 2 2 2 Obs _TYPE_ _FREQ_ _STAT_ price turnover date time 2 0 2 MIN 0.85 1 24MAR2008 8:30 3 0 2 MAX 4050002.00 984000000 18MAR2013 22:48
Don't miss out on SAS Innovate - Register now for the FREE Livestream!
Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.