【问题标题】:sas loop for each rows每行的sas循环
【发布时间】:2018-08-19 07:01:52
【问题描述】:

我有以下形式的数据

dataset A   A   B       dataset B   C   D   E   F
            1   7                   3   2   1   9
            2   8                   5   3   4   5
            3   9                   6   5   5   6
            4   10                  2   7   2   11
            5   11                  7   9   14  8
            6   12                  9   5   8   13

我正在尝试构建一个循环。 我想创建以下数据集

 A  B   C   D   E   F   G
1   7   3   2   1   9   A+B-(C+D-E+F)
1   7   5   3   4   5   A+B-(C+D-E+F)
1   7   6   5   5   6   A+B-(C+D-E+F)
1   7   2   7   2   11  A+B-(C+D-E+F)
1   7   7   9   14  8   A+B-(C+D-E+F)
1   7   9   5   8   13  A+B-(C+D-E+F)
.
.
.

有可能吗?

【问题讨论】:

    标签: loops sas


    【解决方案1】:

    您似乎需要笛卡尔积。可以执行以下操作以获得所需的结果!

    将输入数据集名称设为 a 和 b

    proc sql;
    create table new as
    select a.*, b.*, A+B-(C+D-E+F) as G
    from a,b;
    quit;
    

    【讨论】:

    • 嗯,它看起来像是一个笛卡尔积。如果我们查看所需的结果,则数据集 A 中的第一行与数据集 B 中的所有其他行匹配。然后有三个点通常意味着该模式应该继续。如果不是这样 - 谁能帮我看看我错过了什么。
    • 你是对的。我误读了问题的需要部分——删除了我的 1-1 合并答案和评论。
    猜你喜欢
    • 1970-01-01
    • 2016-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多