When the data requires too much memory to process, one approach to work around it is to use extra CPU time instead of memory. In the extreme, you could sort your data by all 27 variables, and then use a DATA step with a BY statement to count observations. Alternatively, if by some chance your data are already in order by one of the variables, you could use that as a BY variable in PROC FREQ (or PROC SUMMARY for that matter). For example, if your data were in order by r_HPV_recode_1, but not in order by any of the other variables, you could use: proc freq data=hpv_single_reasons; by r_HPV_recode_1; tables (same list, but remove r_HPV_recode_1) / out=hpv_single_reasons; run; The counts will be the same as if your original program had worked, although the percentages will be different. There's no guarantee it will work, but it certainly has a good chance. You might have to switch 2 or 3 variables to the BY statement instead of just 1, in which case the SORT + DATA step might be preferable. Good luck.
... View more