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

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;

  

1 ACCEPTED SOLUTION

Accepted Solutions
Reeza
Super User

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;


 

View solution in original post

5 REPLIES 5
RW9
Diamond | Level 26 RW9
Diamond | Level 26

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.  

Reeza
Super User
You may want to suppress the output though - use NOPRINT. Generating that type of output can take a lot of time. If it sorted fine though, I'd expect PROC MEANS to run fine. And 1.6 million rows should complete in under 5 minutes in my experience (SAS UE is still less than a minute for me).

If you have a lot of variables, you can try dropping the variables you don't need in a data set option to make it faster. Not sure if that helps but worth a shot.
Astounding
PROC Star

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;

Reeza
Super User

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;


 

Barkamih
Pyrite | Level 9

 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 

SAS Innovate 2025: Call for Content

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!

Submit your idea!

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
  • 2194 views
  • 5 likes
  • 4 in conversation