SAS 条件语句

标签 sas

这个:

IF VAR1 ne VAR2 ne VAR3 ne VAR4;   

我希望这个条件检查是否:

  • VAR1 不等于 VAR2、VAR3、VAR4
  • VAR2 不等于 VAR1、VAR3、VAR4
  • VAR3 不等于 VAR1、VAR2、VAR4
  • VAR4 不等于 VAR2、VAR3、VAR1

这可能吗?

最佳答案

我认为对于四个变量的情况,六个与 IF 可能是最好的。然而,如果你想无限制地做到这一点,数组解决方案是显而易见的;这里的工作量比需要的多,但比 10 个变量 -> 45 个 if 少。

data want;
  set have;
  match=0;
  array vars var:;
  do _t = 1 to dim(vars)-1;
    do _u = _t+1 to dim(vars);
      if vars[_t] = vars[_u] then match=1;
    end;
    if match=1 then leave;
  end;
run;

这与 6 个 if 的作用相同(测试 1 vs 2,3,4,测试 2 vs 3,4,测试 3 vs 4),但采用数组/循环形式。

关于SAS 条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27893714/

相关文章:

r - 传递函数模型::TSA 中的 Arimax

sql - 如何为一组特定的连续记录添加序列号?

random - 在SAS中,从seed+1重新启动ranuni是个好方法吗?

data-structures - 如何比较SAS中的表结构

sas - 尽管返回非零,哈希查找方法仍输入值 - SAS

SAS:如果观察值与另一个数据集中的观察值匹配,则从数据集中删除观察值

r - Kaplan Meier 生存曲线结果在 R 和 SAS 之间有所不同?

sas - 通过使用存储过程将数据存储在 sas 中。使用本地服务器(工作空间)选项

sas - 我正在尝试将 SFTP 文件(SAS 数据集或 token )从一台服务器传输到 SAS 中的另一台服务器

sas - 在 SAS 中读取句点作为字符值