SAS学习之产生新变量 |
您所在的位置:网站首页 › sas从数据集中读取指定的数据类型 › SAS学习之产生新变量 |
1.直接用表达式或函数直接产生新变量 格式为:变量名=表达式或函数 例: data a1; input wt ht; bmi=wt/(ht/100)**2; /*“**”表示幂次方的意思*/ rbmi=sqrt(bmi); obesity=(bmi>=28); city="北京"; date="02apr2013"d; format data yymmdd10.; cards; 60 170 55 166 73 161 ; proc print; run;新变量得写在input和cards之间。 在SAS中日期常量都要写成“日月年”d这种格式(月是英文的前三个字母,年可以是2位或4位) 2.利用if-then语句产生新变量 格式为: if 表达式 then 新变量=; else 新变量=; data lx; input id lx$; lx1=lx in ("有效","显效","痊愈"); if lx in ("有效","显效","痊愈") then lx2="有效";else lx2="无效"; cards; 1 显效 2 有效 3 无效 4 痊愈 ; proc print; run;3.利用retain语句和累加语句产生新变量 SAS在读取数据的时候是有遗忘症的,它每读完一条观测返回到data语句的时候,会忘掉刚才读取的数值。。 retain语句和累加语句可以使SAS留住上次的记忆不再重复读取,retain语句的基本格式: retain 变量 ; 作用是生成一个变量,指定初始值,并保留该变量每次计算的结果。如果没有指定初始值,默认初始值为缺失值。 retain语句可以指定一个或多个变量,例如: retain a 21; (指定a的初始值为21) retain year 2001 total 0;(指定year的初始值为2001,total的初始值为0) 累加语句的基本格式是:变量+表达式; year+1;(默认year=0,year+1产生的结果就是year=1) total+amount;(amount变量必须在前面已经指定了,此时相当于total=total+amount) 结果如上图所示 4.使用do循环语句产生新变量 do 变量=初始值 to 最终值 ; 3A3语句; end; 使用do循环时要注意避免以下两个错误:1)忘记写output;语句,这导致SAS只能读取最后一个数,因为前面的数没有通过SAS显示;2)忘记写end;语句,此时SAS找不到循环结束的标志,给不出结果。 5.指定新变量的类型与长度 SAS中主要是用length语句来指定新变量的长度与类型,格式为:length 变量1 长度1 变量2 长度2……; 该语句的意思是对变量指定一个长度,如果是字符型变量,还需要加上$符号。字符变量的长度是由第一个遇到的值的长度决定的,而且字符变量一旦产生,它的长度就无法改变。 length语句一定要在新变量产生之前就设定好,否则是不起作用的。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |