《【SAS代码模板】建立复杂新变量ifsql》由会员分享,可在线阅读,更多相关《【SAS代码模板】建立复杂新变量ifsql(2页珍藏版)》请在金锄头文库上搜索。
1、数说工作室 【SAS 代码模板】建立复杂新变量_if_(1 )根据变量 var1 的不同取值建立新变量 var2复制表 a,建立表 b,并依据变量 var1 的不同取值生成一个新变量。黄色字体是自己填写部分,红色字体是可缺省部分。模板Data b;Set a;If var1=value11 then var2=value21;Else if var1=value12 then var2=value22;By 排序变量Run;模板by 语句用来给表排序,可以不要。例,下面依据变量 age 生成变量 amountpaid:Data b;Set a ;If age=. Then amountpaid
2、=.;Else if age3 then amountpaid=0;Else if age65 then amountpaid=35;Else amountpaid=27;Run;(2 )建立的新变量为统计量比如,想比较每个观测值和一组变量均值,即插入一个新变量,这个新变量为某变量所在组中的均值。有一种方法是先用 proc means 进行描述性统计,计算出统计量,保存输出文件,再与原始文件合并,这种方法冗长麻烦,且不灵活,这里给出 sql 代码方法:下面代码模板显示,在表 a 中插入一列,此列是变量 var1 每组(分组变量为 var2)均值。模板Proc sql;Create table b asSelect *,mean(var1) from aGroup by var2;Quit; 模板例:想插入一列,此列显示每种 exercisestyle 的平均 sales数说工作室 代码为:Proc sql;Create table a asSelect *,mean(sales) as meansales from shoesGroup by exercisetype;Quit;生成的表为: