📜  SAS循环

📅  最后修改于: 2021-01-08 14:28:40             🧑  作者: Mango

SAS环路

在一般编程中,语句是按顺序执行的,即程序的第一个语句首先执行,然后第二个执行,依此类推。但是,在某些情况下,我们需要执行特定次数或重复执行同一组语句。在这种情况下,我们需要使用循环。

在SAS中,我们可以通过使用Do Statement(也称为Do Loop)来使用循环。

SAS编程中使用了三个基本循环:

  • 做循环
  • 直到
  • 做一会儿

现在,让我们了解SAS编程中这些循环的动作:

做循环

这是DO循环的最简单形式。 DO循环的操作是无条件的,这意味着如果我们指示该循环执行一条语句50次,那么它将无限制地执行该语句50次(除非在处理过程中发生错误)。让我们举个例子来了解它的工作原理。

例:

在这里,我们以增加银行帐户余额为例,并在接下来的4笔Rs.1000卢比之后计算帐户余额。

假设初始帐户余额为9000,那么我们可以在下面的代码中分配“ Balance = 9000”。

DATA account; 
balance = 9000;
doi = 1 to 4;
balance + 1000;
end; 
run;  
PROC print DATA=account;
run;

在此代码中,我们将执行“ balance + 1000”语句4次,这样它将无条件地最多执行4次。

在SAS Studio中执行以上代码:

输出:

正如我们在输出中看到的,有两个变量:

  • 第一个变量是“余额”,其中包含4次付款后的帐户余额,即13000
  • 第二个变量是“ i”,它显示所有迭代完成后i的最终值。

直到

第二种类型的循环是DO UNTIL循环。我们可以使用该循环继续执行语句,直到条件变为真为止。让我们通过一个例子来理解:

例:

在这里,我们将使用DO UNTIL循环来计算贷款的还款数量。假设贷款总额为30,000,还款额为Rs。 1000每月。

DATAuntil;
loan = 30000;
payments = 0;
do until (loan = 0);
loan = loan - 1000;
payments = payments + 1;
end;
run;
proc print data=until;
run;

在SAS Studio中执行以上代码:

输出:

根据以上输出,付款的计数一直持续到贷款变为零为止。

做一会儿

循环的第三种类型是DO WHILE循环。当指定条件保持为真时,我们可以使用此循环继续执行。让我们通过一个例子来理解:

在此示例中,我们将使用DO WHILE循环来计算贷款的还款次数。在这里,我们使用与上述示例相同的数据。

Data while;
loan = 30000;
payments = 0;
do while(loan > 0);
loan = loan - 1000;
payments = payments + 1;
end;
run;
proc print data=while;
run;

在SAS Studio中执行以上代码:

输出:

根据以上输出,将继续进行付款计数,直到贷款大于零或条件成立为止。

在上述两个循环中,我们可以通过使用各种逻辑运算符和比较运算符来根据需要给出条件。

注意:我们已经在SAS Operator的上一主题中了解了这些运算符符。