我有下面的數據集作爲輸入組通過SAS
ID
--
1
2
2
3
4
4
4
5
,需要一個新的數據集如下
ID count of ID
-- -----------
1 1
2 2
3 1
4 3
5 1
你能告訴如何在SAS做到這一點wihtout使用PROC SQL ?
我有下面的數據集作爲輸入組通過SAS
ID
--
1
2
2
3
4
4
4
5
,需要一個新的數據集如下
ID count of ID
-- -----------
1 1
2 2
3 1
4 3
5 1
你能告訴如何在SAS做到這一點wihtout使用PROC SQL ?
試試這個:
DATA Have;
input id ;
datalines;
1
2
2
3
4
4
4
5
;
Proc Sort data=Have;
by ID;
run;
Data Want;
Set Have;
By ID;
If first.ID then Count=0;
Count+1;
If Last.ID then Output;
Run;
或者怎麼樣PROC頻率或PROC總結?這些避免了必須預先處理數據。
proc freq data=have noprint;
table id/out=want1 (drop=percent);
run;
proc summary data=have nway;
class id;
output out=want2 (drop=_type_);
run;
PROC SORT DATA=YOURS NOPRINT;
BY ID; RUN;
PROC MEANS DATA=YOURS;
VAR ID;
BY ID;
OUTPUT OUT=NEWDATASET N=; RUN;
您也可以選擇只保留ID和你的newdataset ñ變量。
如果你想要做的聚集是複雜的,然後用PROC SQL只去像我們比較熟悉的集團在SQL
proc sql ;
create table solution_1 as select distinct ID, count(ID)
from table_1
group by ID
order by ID
;
quit;
OR
這只是拖動&下降ü要聚集的列和選擇要像平均執行任何操作摘要選項,計數,小姐,NMiss等。
嗨,這是我的第一個答案。你能告訴我答案的錯誤或Downvoting的原因嗎?謝謝.. – 2016-11-17 13:24:40
當然,首先,深入研究一下這個問題:「如何在不使用PROC SQL的情況下在SAS **中執行此操作?」**其次,您重複了第三個答案。 – McNets 2016-11-17 15:42:40
重複的原因就像我想說的一樣...我只是想添加一個點,如果一個人使用SAS EG,他/她可以使用查詢生成器進行此類分析。 – 2016-11-17 17:31:48
我們可以用簡單的SQL PROC計數做到這一點:
proc sql;
create table want as
select id, count(id) as count_of_id
from have
group by id;
quit;
這裏是另一種可能性,常常被稱爲陶氏建築:
Data want;
do count=1 by 1 until(last.ID);
set have;
by id;
end;
run;
很多THANKs !!!!!!!!!!!!!!!!!我已經開始學習SAS數據,我的問題非常簡單 – athresh 2012-04-27 14:30:51