作者tew (咖啡王子)
看板Statistics
標題Re: [問題] SAS程式一直寫不對 請幫幫我!
時間Thu Jul 17 18:09:59 2008
proc sql;
create table new1 /*新的檔案*/ as
select *
from old/*你的檔案*/
where country contains 'Argentina';
quit;
proc sql;
create table new2 /*新的檔案*/ as
select *
from old/*你的檔案*/
where country contains 'Australia';
quit;
data a;
set new1 new2;
delete=1;
run;
proc sort data=a;by country;
run;
proc sort data=old;by country;
run;
data a;
merge old a;by country;
if delete=1 then delete;
drop delete;
run;
以上
你的變項不需要完全一樣就可以做到
管他有沒有空格
都可以刪除
第二個解法
proc sort data=yourfile;by country;
run;
data country;
set yourfile;
if country=country then delete;
keep country;
run;
接著輸出到EXCEL,針對你的國家,另外加一個虛擬變數
要給0或者1都可以
然後再讀進SAS
使用依照國家合併的方法
將你不要的資料刪除
不然就用第一個解法
但是要針對妳不要的公司 做很多檔案就是了
多複製幾次就可以
※ 引述《gsuper (統計很難! 很難! 很難!)》之銘言:
: ※ 引述《GoldenSpark ()》之銘言:
: : 謝謝大家!
: : 這位高手說的完全正確
: : 根據我今天後來去問我教授的結果
: : 以及剛剛自己的實驗
: : 發現要加' ' 或 " " 都可以
: : 然後內容的名字最好是一模一樣
: : 但是無論怎麼試還是試不出 一次刪掉多個國家的方法
: : 剛剛試了
: : IF country='Argentina Australia' THEN DELETE;
: : 或
: : IF country='Argentina' 'Australia' THEN DELETE;
: : 或是中間加or都不行
: : 不曉得是又漏掉什麼程式了
: : 再一次謝謝大家囉!
: IF country='Argentina' THEN DELETE;
: IF country='Australia' THEN DELETE;
: IF country='C' THEN DELETE;
: IF country='D' THEN DELETE;
: IF country='E' THEN DELETE;
: .
: .
: .
: SAS不可以使用
: if
: else if
: else if
: else
: 只能一直 if
: if
: if
: 或最多配一個else
: 可是配else變成一定要把資料區分成兩個範疇
: 所以就一直if吧
: 不然就換成 switch 語法
: 不過這些都是SAS最基本的東西內.....
: 建議自己多翻一下書本吧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.225.35.3
※ 編輯: tew 來自: 125.225.35.3 (07/17 18:10)
※ 編輯: tew 來自: 125.225.35.3 (07/17 18:16)
推 GoldenSpark:第一個方法很酷 學起來了 謝謝 請問第二個方法的 07/17 20:43
→ GoldenSpark:keep country是指? 07/17 20:43
→ tew:跑過妳就知道了 07/17 21:05