现在的位置: 首页 > 综合 > 正文

数组array处理数据

2018年10月23日 ⁄ 综合 ⁄ 共 1363字 ⁄ 字号 评论关闭

在下面链接,我曾经摘录过关于数组的代码

http://blog.renren.com/blog/220869953/505234700?frommyblog

http://blog.renren.com/blog/220869953/703331884?frommyblog

今天看到“Using SAS® Arrays to Manipulate Data”一文,正好可以对ARRAY进行一个总结。

 

首先,ARRAY的语法结构为:array array-name { n } [ $ ] [ length ] variable-names ;

通过数组我们可以进行重复计算,创建具有相似特征的多个变量,读取数据,对一些变量进行同一比较以及进行表查询等等。下面利用几个例子来说明数组如何实现以上功能。

1.货币换算的例子,将sasuser.econtrib中的数据由美元转换为人民币。

data task1(drop=i);
   array qtrs {4} qtr1-qtr4;
   array eqtrs {4} eqtr1-eqtr4;
   set sasuser.econtrib;
   do i=1 to 4;
      eqtrs{i}=qtrs{i}*6.8;
   end;
run;

 

2.将全是字符型数据转化为为数值型

data dates;
   length date1 - date3 $10;
   input date1 $ date2 $ date3 $;
datalines;
11jun08 11jun2008 06/11/2008
10jul08 10jul2008 07/10/2008
;
run;
data convert;
   set dates;
   array c_dates { 3 } $ 10 date1 - date3;
   array n_dates { 3 } n_date1 - n_date3;
   do i = 1 to 3;
      n_dates{ I } = input(c_dates{ i }, anydtdte10.);
   end;
run;

3.计算月度数据间的偏差,偏差率

data sample;
   input id date_1 $ reading_1 date_2 $ reading_2 date_3 $ reading_3 date_4 $ reading_4;
   datalines;
1009 03jan 216.9 06feb 212.3 09mar 209.6 08apr 207.8
1017 02jan 190.2 04feb 189.5 05mar 192.8     .     .
1023 04jan 256.3 05feb 249.5 06mar 243.5 03apr 241.2
;
run;
data difference(drop=i);
   array reading{4} reading_1 - reading_4;
   array diff{3};
   array percent{3};
   set sample;
      do i=1 to 3;
      diff{i}=reading{i+1}-reading{i};
      percent{i}=diff{i}/reading{i};
   end;
   rename date_1=starting_date;
run;

 

4.利用数组进行数据结构的转置

http://blog.renren.com/blog/220869953/703331884?frommyblog

 

 

抱歉!评论已关闭.