BookmarkSubscribeRSS Feed
meghanrm
Calcite | Level 5

Hi,

 

I am trying to create a new variable that is the average of a variable V1 for every subject. Each subject has 3 rows containing values for V1 that were taken at 3 different time points. I can't calculate the average using a data step: average=(total_V1 / 3) because some subjects have 1-3 missing values for V1. Therefore, for those subjects that are missing V1 values it should be divided by 1 or 2 for example not 3. I can't figure out how to create a variable to go in the denominator of my average calculation to make the numbers accurate, please help!

 

Here is an example of how the data exists:

id.    V1

1.      3

1.      4

1.      5

2.      6

2.      .

2.      7

3.       .

3.       .

3.       2

 

3 REPLIES 3
ballardw
Super User

You should always show what you expect an output data set to look like. Do you need a data set for further manipulation or a report for people read?

 

One way to get a data set:

proc summary data=have nway;
   class id;
   var v1;
   output out=summary (drop=_:) mean=;
run;
meghanrm
Calcite | Level 5
Sorry I am new to posting on here. I need a data set for further manipulation. I am trying to create a new average variable and I have already written the code to get the total for the numerator of the average calculation but I can't figure out what code would work for the denominator being that subjects with missing data should not be divided by 3
PaigeMiller
Diamond | Level 26

@meghanrm wrote:
Sorry I am new to posting on here. I need a data set for further manipulation. I am trying to create a new average variable and I have already written the code to get the total for the numerator of the average calculation but I can't figure out what code would work for the denominator being that subjects with missing data should not be divided by 3

Use PROC SUMMARY, as explained by @ballardw and then do the "further manipulation" in the output from PROC SUMMARY.

 

Which brings up the question: what "further manipulation" do you want to do? Perhaps this is already available in SAS (for example, PROC STDIZE) and so maybe PROC SUMMARY isn't needed.

--
Paige Miller

sas-innovate-2024.png

Available on demand!

Missed SAS Innovate Las Vegas? Watch all the action for free! View the keynotes, general sessions and 22 breakouts on demand.

 

Register now!

How to Concatenate Values

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.

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
  • 3 replies
  • 1066 views
  • 0 likes
  • 3 in conversation