Can you calculate the mean, median and mode of the following data set
using data step logic? Don't use any function or procedure.
data a;
input age @@;
datalines;
22 32 32 32 43 23 24 56 45 54 28 29 27 26 25 28 30 20 18 37 36 47 46
56 19 20
;
run;
I have calculated the mean which i have posted in the answer section.
Answers were Sorted based on User's Feedback
Answer / sattwik kumar
data b;
set a end=lastobs;
age_temp+age;
count+1;
if lastobs then
mean=age_temp/count;
run;
Is This Answer Correct ? | 19 Yes | 4 No |
Answer / rg
data temp;
input age @@;
cards;
8 7 7 2 67 9 7 7 1 2 45 34 22 45 23 8 34 23
run;
proc sort data=temp; by age ;run;
data a(keep = median mode_age mean);
last_age=age;
retain max_cnt mode_age median;
set temp end=lastobs nobs=n;
by age;
age_temp + age;
/*Median */
if mod(n,2) = 1 and _n_ = (n+1)/2 then do ;median=age; end;
if mod(n,2) = 0 and _n_ = (n+2)/2 then do ;median=(age + last_age)/2; end;
/*Mean*/
if lastobs then do mean=age_temp/n ; end;
/*Mode */
if first.age then cnt =1; else cnt+1;
if last.age then lst_cnt=cnt;
if lst_cnt > max_cnt then do; max_cnt = lst_cnt; mode_age = age;end;
if lastobs then output;
run;
Is This Answer Correct ? | 9 Yes | 1 No |
Answer / chandrakanth
options firstobs=1 obs=26;
data a;
input age @@;
datalines;
22 32 32 32 43 23 24 56 45 54 28 29 27 26
25 28 30 20 18 37 36 47 46
56 19 20
;
run;
proc sort data=a out=ab;
by age;
run;
options firstobs=13 obs=14;
data c;
set ab end=last;
sum_age+age;
if last then median=sum_age/2;
run;
we need observation 13 and 14 because total number of observations is n=26 when n is even we need to do mean of two observations n/2 and (n/2)+1 which is 13th and 14 th observations in this case.
let me know if you need more help... I'm still thinking about mode...will send once I get it
Is This Answer Correct ? | 3 Yes | 2 No |
Answer / paul
data b;
set a end=lastobs;
age_temp+age;
count+1;
if lastobs then
mean=age_temp/count;
if _n_=13 then
Median=Age; /*median is the mid value */
run;
proc sort data=b out=c;
by age;
run;
data d;
set c;
if first.age=0 and last.age=0 then
Mode=age;/*mode is the most repeated value*/
by age;
run;
Is This Answer Correct ? | 3 Yes | 9 No |
Answer:
data new;
set a end = last;
count+1;
age_n+age;
if last then do;
mean = round(((age_n)/(count)),.8);
median = ((count+1)/2);
end;
run;
By the above program we can calculate the mean and median.
lets us know me, if anybody find the logic for find mode
Is This Answer Correct ? | 0 Yes | 6 No |
Mention the validation tools used in SAS?
What is the maximum and minimum length of macro variable
I have a dataset concat having variable a b & c. How to rename a b to e & f?
how to display duplicated observations in a data using base sas.
13 Answers HCL, TCS,
Briefly describe 5 ways to do a "table lookup" in sas.
if i having variables named a b c d e f ,how to find total of each variable ????give syntax...??
Mention few ways with which a “table lookup’ is done in sas programming.
what are informats in sas? : Sas-administrator
what is conditional processing?
If you have a data set that contains 100 variables, but you need only five of those, what is the code to force SAS to use only those variable?
How do you put an elephant in the refrigerator?
what is Global Symbol table and Local symbol table?