Hello,
Is it possible to compute/create a character variable in proc report? What I would like to do is take 2 numbers, a create a new character variable that puts them in a from that looks something like this: (18.2, 21.1). However, it seems that maybe compute blocks can only create numeric variables. Is there a way around this?
Thanks!
proc surveyfreq data=d1;
tables walk / row cl nowt nostd;
stratum final_stratum;
cluster final_cluster;
weight final_weight;
ods output oneway=out_table;
run;
proc report data=out_table;
columns table percent lowerCL UpperCL CL;
define table / display;
define percent / display;
define lowerCL / display;
define UpperCL / display;
define CL / computed ;
compute CL; CL = cats("(", LowerCL, ",", UpperCL, ")"); ENDCOMP;
run;
Error message:
NOTE: Character values have been converted to numeric values at the places given by:
(Line):(Column).
1:7
NOTE: Invalid numeric data, '(78.900921457,81.793697714)' , at line 1 column 7.
NOTE: Invalid numeric data, '(18.206302286,21.099078543)' , at line 1 column 7.
NOTE: Invalid numeric data, '(_,_)' , at line 1 column 7.
NOTE: There were 3 observations read from the data set WORK.out_table.
NOTE: At least one W.D format was too small for the number to be printed. The decimal may be
shifted by the "BEST" format.
Since you are not actually calculating the values for the limits in the proc report I would think the easier way would be in an intermediate datastep;
data out_table; set out_table; CL = cats("(", LowerCL, ",", UpperCL, ")"); run;
before the Proc report.
I would probably use a Put(lowercl,best6.) or similar in the cats function unless you really think the additional digits are helpful.
I know of a method that involves custom format to supply leading (, leading comma with trailing ) , style justifications of right and left for adjacent columns, reducing the cellpadding and border widths to 0 to get that appearance in calculated columns
Thank you both for your helpful replies!
SAS Innovate 2025 is scheduled for May 6-9 in Orlando, FL. Sign up to be first to learn about the agenda and registration!
Learn the difference between classical and Bayesian statistical approaches and see a few PROC examples to perform Bayesian analysis in this video.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.