I've the below data. If an item from the below dataset, is more thatn 10% of the whole items, I want it separate bucket. Thanks.
ITEM |
apples |
apples |
tomotos |
tomotos |
peppers |
peppers |
xyz |
abc |
xyz |
abc |
abc |
xyz |
abc |
xyz |
abc |
tuv |
tuv |
tuv |
tuv |
abc |
xyz |
tuv |
PROC FREQ will do what you need. It usually prints frequencies and percents, but you can also ask for an output dataset, which can then be filtered through a "where=(percent>=10)" condition:
proc freq data=have noprint;
tables item / out=want (where=(precent>=10));
run;
Your question illustrates to me why we constantly ask folks to show not only the input data, but show what the output should look like.
It's apparent that you want to do something for each values that accounts for more than 10% of the total. That part's quite easy.
But what do you mean by "separate bucket"? A new data set? A "bucket" for each value passing the criterion? Or a single "bucket for all of those values?
The less mind reading required, the better will be the answers.
Thanks for the suggestion. Wish I would have more illustrated.
Let's say if I have to have generate below output dataset. I don't want items which are less than 10%. Thank you.
Item | Percentage |
abc | 13% |
tuv | 11% |
apples | 13% |
PROC FREQ will do what you need. It usually prints frequencies and percents, but you can also ask for an output dataset, which can then be filtered through a "where=(percent>=10)" condition:
proc freq data=have noprint;
tables item / out=want (where=(precent>=10));
run;
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 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.