作者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)
1F:推 GoldenSpark:第一个方法很酷 学起来了 谢谢 请问第二个方法的 07/17 20:43
2F:→ GoldenSpark:keep country是指? 07/17 20:43
3F:→ tew:跑过你就知道了 07/17 21:05