SAS(十一)DATA步--信息语句

本文详细介绍了SAS编程中的DATA步,包括数组(array)语句的显式和隐含下标用法,Do over语句的遍历操作,Informat语句用于设置输入格式,Format语句关联变量输出格式,Drop和Keep语句管理数据集中变量,Retain语句保持变量值,Attrib语句定义变量属性,以及Window语句创建用户窗口。
摘要由CSDN通过智能技术生成

SAS(十一)DATA步--信息语句

数组(array)语句

  • 当需要用同一种方法处理很多变量时,可以用数组语句定义这组变量为某个数组中的元素。
  • 1.显示下标array语句:由一个数组名字,在数组中元素个数的说明,及元素列表组成。
  • 2.隐含下标array语句:由一个数组名字、一个下标变量和列表名组成。
  • 形如:
ARRAY array-name {subscript} <$> <<array-elements><(initial-values)>>
例   array simple{3} red green yellow;
      array x{5,3} score1-score15;
      array c{3}
等价于 array c{3} c1-c3
   array test{3} t1 t2 t3 (90 80 70)
数组中的变量必须全是数值型或字符串型, array
  • 规定数组中每一维的上下界:

array x{1:5,1:3} score1-score15;

  • {*}表示SAS系统通过数组中变量的个数来确定下标。可用dim(数组名)函数计算数组元素个数。
  • _temporary_建立一个临时数组元素列表

 

data zz;                                                                                                                                
     input d1-d7;                                                                                                                       
         array day(*) d1-d7;                                                                                                            
         do i=1 to dim(day);                                                                                                            
            day(i)=day(i)+10;                                                                                                           
         end;                                                                                                                           
         drop i;                                                                                                                        
     cards;                                                                                                                             
99  11   22   222     22   3  44                                                                                                        
1 2 3 4 5 6 7                                                                                                                           
;                                                                                                                                       
run;                                                                                                                                    
PROC PRINT;RUN;

 

 

data a;                                                                                                                                 
input x1-x5;                                                                                                                            
cards;                                                                                                                                  
1 2 3 4 5                                                                                                                               
2 3 4 5 6                                                                                                                               
4 5 6 7 8                                                                                                                               
;                                                                                                                                       
run;                                                                                                                                    
data b;                                                                                                                                 
set a;                                                                                                                                  
array test(5) x1-x5;                                                                                                                    
prod=0;                                                                                                                                 
do i=1 to dim(test)-1;                                                                          
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
SAS中,data语句用于创建或修改一个数据集。以下是data语句的使用规则: 1. data语句必须以data关键字开头,后跟数据集的名称。数据集名称必须是1-32个字符的有效SAS名称。 2. 可以用“set”关键字指定要使用的现有数据集,语法如下: data new_dataset; set existing_dataset; run; 3. 可以使用“keep”和“drop”关键字指定要保留或删除的变量,语法如下: data new_dataset; set existing_dataset; keep var1 var2; /* 保留var1和var2变量 */ drop var3; /* 删除var3变量 */ run; 4. 可以在data语句中使用多个数据集,并在数据骤中进行合并。例如: data new_dataset; set existing_dataset1 existing_dataset2; run; 5. 在data语句中,可以使用if-then或do-end语句选择或过滤数据。例如: data new_dataset; set existing_dataset; if var1 = 'Yes' then var2 = 'New Value'; /* 当var1等于Yes时,将var2的值更改为New Value */ if var3 < 10 then delete; /* 当var3小于10时,删除该记录 */ run; 6. 数据集创建或修改的内容必须在run语句中指定。在run语句之后,SAS会读取数据集并执行相应的操作。 7. 如果数据集不存在,则SAS将创建一个新的数据集。如果数据集存在,则SAS将覆盖现有数据集。因此,在执行data语句之前,请确保备份现有数据集。 总之,data语句是在SAS中创建和修改数据集的基本语句,可以根据需要使用其他关键字和语句对数据进行处理和分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

路易三十六

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值