BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
bigban777
Obsidian | Level 7

How i can assign result of procedure to variable?

For example i need assign standard deviation value to variable SD from 

 

 

 

PROC MEANS STD DATA = smoke3;

run;

 

So i can use it to find margin of error:

 

me=SD/sqrt(n);

 

Thank you

1 ACCEPTED SOLUTION

Accepted Solutions
ballardw
Super User

Generate a data set with the summary values you want and then in a data step do additional calculations:

I tend to prefer Proc summary which does basically the same as proc means but default output sets are structured differently.

Here is an example using the SASHELP.Class data set. Proc summary will require the names of the analyis variables, a variable list, or use of the keyword _numeric_ on the VAR statement. The autoname creates output variables named as your input variables with a suffix of the statistic requested.

 

Proc summary data=sashelp.class;
   var Age Height Weight;
   output out=work.sum std= n= /autoname;
run;
data want;
   set work.sum;
   AgeMe = age_StdDev/sqrt(Age_N);
   HeightMe = Height_StdDev/sqrt(Height_N);
   WeightMe = Weight_StdDev/sqrt(Weight_N);
run;

View solution in original post

5 REPLIES 5
bigban777
Obsidian | Level 7
 

How i can assign result of procedure to variable?

For example i need assign standard deviation value to variable SD from 

  

 

PROC MEANS STD DATA = smoke3;

run;

 

So i can use it to find margin of error:

 

me=SD/sqrt(n);

 

Thank you

Kurt_Bremser
Super User

Create an output dataset with the output statement in proc means. Then run a data _null_ step from that dataset and use call symput to create a macro variable.

ballardw
Super User

Generate a data set with the summary values you want and then in a data step do additional calculations:

I tend to prefer Proc summary which does basically the same as proc means but default output sets are structured differently.

Here is an example using the SASHELP.Class data set. Proc summary will require the names of the analyis variables, a variable list, or use of the keyword _numeric_ on the VAR statement. The autoname creates output variables named as your input variables with a suffix of the statistic requested.

 

Proc summary data=sashelp.class;
   var Age Height Weight;
   output out=work.sum std= n= /autoname;
run;
data want;
   set work.sum;
   AgeMe = age_StdDev/sqrt(Age_N);
   HeightMe = Height_StdDev/sqrt(Height_N);
   WeightMe = Weight_StdDev/sqrt(Weight_N);
run;
Reeza
Super User

One other solution, because sometimes you want the statistics back in the original data set is to SET it back in.

The variables from proc summary will be added to the want data set for inclusion. 

 

PS if you're looking to standardize or scale variables also take a look at PROC STANDARD and STDIZE.

 

Proc summary data=sashelp.class;
   var Age Height Weight;
   output out=work.sum std= n= /autoname;
run;

data want;
if _n_ = 1 then set sum;
set sashelp.class;

run;
Ksharp
Super User
That is called standard error . You don't need another SAS statement to calculated it. PROC MEANS would do it for you .
proc means data=sashelp.class std stderr;
   var Age Height Weight;
run;


sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

What is Bayesian Analysis?

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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 5 replies
  • 1637 views
  • 3 likes
  • 5 in conversation