Hi all
I want to know what is wrong with this code, I'm quite sure this code is correct but it may be the issue because of the big sample size, I have 1.6 million observation. So, What is the best idea to solve this problem.
when I submit this code, after few minutes the system showing proc means not responding.
regards
Ibrahim
proc sort data = have;
by year month week;
run; quit;
proc means data = have;
by year month week;
output out = want sum(FATKG)= FAT_KG SUM(PROTKG)= PROT_KG SUM(MILKKG)= MILK_KG;
RUN; QUIT;
I think @Astounding hit the nail on the head there. If you don't specify NOPRINT or VAR it will analyze all numeric variables and put that in the results window - and that will take time. So adding NOPRINT & a VAR statement should speed things up a lot.
proc sort data = have;
by year month week;
run;
proc means data = have NOPRINT;
by year month week;
var FATKG PROTKG MILKKG;
output out = want sum(FATKG)= FAT_KG SUM(PROTKG)= PROT_KG SUM(MILKKG)= MILK_KG;
RUN;
@Astounding wrote:
It's not clear how many numeric variables exist in your data set. Without a VAR statement, the default is to compute statistics for every numeric variable. PROC MEANS might be "intelligent" enough to figure out that you only need statistics computed for 3 variables ... but it might not figure that out. You might fix the problem just by adding to PROC MEANS:
var fatkg protkg milkkg;
1.6million observations will take a long time to run, there is no workaround unless you can reduce the number of observations. Just leave it until its done.
It's not clear how many numeric variables exist in your data set. Without a VAR statement, the default is to compute statistics for every numeric variable. PROC MEANS might be "intelligent" enough to figure out that you only need statistics computed for 3 variables ... but it might not figure that out. You might fix the problem just by adding to PROC MEANS:
var fatkg protkg milkkg;
I think @Astounding hit the nail on the head there. If you don't specify NOPRINT or VAR it will analyze all numeric variables and put that in the results window - and that will take time. So adding NOPRINT & a VAR statement should speed things up a lot.
proc sort data = have;
by year month week;
run;
proc means data = have NOPRINT;
by year month week;
var FATKG PROTKG MILKKG;
output out = want sum(FATKG)= FAT_KG SUM(PROTKG)= PROT_KG SUM(MILKKG)= MILK_KG;
RUN;
@Astounding wrote:
It's not clear how many numeric variables exist in your data set. Without a VAR statement, the default is to compute statistics for every numeric variable. PROC MEANS might be "intelligent" enough to figure out that you only need statistics computed for 3 variables ... but it might not figure that out. You might fix the problem just by adding to PROC MEANS:
var fatkg protkg milkkg;
I appreciate your help my SAS friends HAHAHAH, now everything is fine and I got what I'm looking for.
thank you very much again
Ibrahim
regards
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
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.