- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Dear expert,
after some checks I get a data set with the following structure:
data b;
input type: $12. variable: $12. variable_min;
datalines;
date begin 2000
num price 3000
date end 2500
;run;
How can I show for the same variable (variable_min) in some cases (when type='date') as date and in some cases (when type='num') as numeric?
Thanks in advance, SH.
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Have a character variable (only character can hol any value):
data b; length result $200; input type: $12. variable: $12. variable_min; select(type); when("date") result=put(variable_min,date9.); when("num") result=put(variable_min,best.); otherwise; end; datalines; date begin 2000 num price 3000 date end 2500 ; run;
Then put your number data in the correct text format.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Dear expert,
after some checks I get a data set with the following structure:
data b;
input type: $12. variable: $12. variable_min;
datalines;
date begin 2000
num price 3000
date end 2500
;run;
How can I show for the same variable (variable_min) in some cases (when type='date') as date and in some cases (when type='num') as numeric?
Thanks in advance, SH.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
It depends on what you mean by "show". If you mean display in the log then you can
precise the display format in the put statement :
data b;
input type: $12. variable: $12. variable_min;
if type="date" then do;
put variable_min= date6.;
end;
else do;
put variable_min;
end;
datalines;
date begin 2000
num price 3000
date end 2500
;
run;
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Repeating the question without additional information is not very helpful.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
of course, sorry I did it by mistake.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
You would have to show the output you want for your example data? Do you want to create a new variable or are attempting to do the desired display in another procedure (unlikely to work).
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Have a character variable (only character can hol any value):
data b; length result $200; input type: $12. variable: $12. variable_min; select(type); when("date") result=put(variable_min,date9.); when("num") result=put(variable_min,best.); otherwise; end; datalines; date begin 2000 num price 3000 date end 2500 ; run;
Then put your number data in the correct text format.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
As a storage pattern it's not a favourite of mine, even if some industry data models have this construct.
Either way, the easiest way is to use a CHAR data type.