06-18-2017 01:11 PM
Need some help in particular requirement, I am very new SAS user.
I have data like this
I need to split the file into 3 files- if the key has more or equal to 4 rows then one file, if the key has 2-3 rows then one file, if key has less than 2 rows then another file.
Key values can be anything. I want to know how can I count the rows for each unique value of the key field and split the file.
06-18-2017 01:29 PM
something like this in proc sql
proc sql; create table want1 as select * from have group by key having count(Key) ge 4; create table want2 as select * from have group by key having count(Key) between 2 and 3; create table want3 as select * from have group by key having count(Key) = 1 ; quit;
06-18-2017 01:57 PM - edited 06-18-2017 02:08 PM
data have; input value$ key; datalines; abc 1 bed 2 daf 1 trewr 1 fdsfds 1 fdsfsd 2 eqre 2 fdsfds 3 dsfds 3 ; proc sort data = have; by key; run; proc freq data = have noprint; tables key / nocum out = freqtable(drop = percent); run; data one twothree fourmore; merge have freqtable; by key; if count = 1 then output one; else if count in (2,3) then output twothree; else output fourmore; drop count; run;