SAS-小技巧总结1(定义变量长度、选择特定观测、定义变量标签)

1、定义变量的长度——length

建立SAS数据集时,定义sas数据集中每个变量的长度。可以将定义长度的句子写在data和set之间,要不然很可能导致在提醒中显示数据集已经定义了变量的长度。

举例:将education数据集中edu变量的长度定义为200个字符。

data education;

length edu $200;

set education;

run;

2、选择特定行数或者范围内的观测(文件的第N行_N_和rom_num):

1)取文件的第一行:

if _N_=1;

2)生成行号的变量rom_num,则取文件的第一行也可以用:rom_num=1;

data education;

rom_num+1;

set education;

run;

3、定义变量标签,使proc freq步中得到的结果能显示变量对应的标签。

data dataw.work_code;

set dataw.work;

/*加标签的方式1:用label语句*/

label code_group = 'code_group'

            1 = '101'

            2 = '102'

            3 = '103'

            4 = ‘104'

            5 = '105'

            6= 'others';

if code=11111 then code_group=1;

else if code=22222 then code_group=2;

else if code=33333 then code_group=3;

else if code=44444 then code_group=4;

else if code=55555 then code_group=5;

else code_group=6;

run;

proc sort;by code_group;run;

/*加标签的方式2:proc format,因为code_group 变量本身是数值型变量,所以用如下的写法*/

proc format;

value code_group 1 = '101'

                                2 = '102'

                                3 = '103'

                                4 = '104'

                                5 = '105'

                                6 = 'others';

run;

/*如果code_group是字符型变量,则采用如下的写法

proc format;

value $code_group '1' = '101'

                                '2' = '102'

                                '3' = '103'

                                '4' = '104'

                                '5' = '105'

                                '6' = 'others';

run;*/

proc freq data=dataw.work_code;

tables code_group;

format code_group code_group.;

run;

加标签的方式1:用label语句


加标签的方式2:proc format


4、对数据集进行批量改值

1)对数据集中的字符型字段进行改值

data collect;

set collect;

array char _char_;

do over char;

if strip(char)="-8"|strip(char)="-7"|strip(char)="-2"|strip(char)="-1" then char ="";

end;

run;

2)对数据集中的数值型字段进行改值

data collect;

set collect;

array num _numeric_;

do over num;

if num in ("-8" "-7" "-2" "-1") then num =.;

end;

run;

至此,我们对数据集中所有文本型、数值型的-8、-7、-2、-1分别填充为了空白和缺失。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天的文章的使用场景是,是因为我很热衷处理那种别人不喜欢整理的各种流水数据,例如运营商通话流水啊,银行卡流水啊,信...
    _瑾_瑜_阅读 5,186评论 2 2
  • # 切换目录 cd # 示例 # 切换到上一层目录 cd .. # 切换到/opt/software cd /op...
    羞涩的二黄阅读 781评论 0 0
  • SAS读取数据的规则是遇到空格时默认该数据读取完毕,除非是指定了数据宽度时,则以宽度值来确定数据;冒号的作用是告诉...
    蛐蛐囍阅读 2,603评论 1 0
  • 变量名 名字的长度要小于等于 32 个字节。(一个字母 1 个字节, 一个汉字 2 个字节)以字母或下划线开头。可...
    ShawnDuan阅读 1,589评论 0 0
  • # -------------------------------------------------------...
    woaishangxue阅读 968评论 0 0