【问题标题】:Merging SAS rows with COALESCE function使用 COALESCE 函数合并 SAS 行
【发布时间】:2018-11-26 14:34:54
【问题描述】:

我正在尝试在 SAS 中合并以下行。这是数据:

StudentNumber   Test1   Test2   Test3
001             .       86      .
001             94      .       .
001             .       .       75
002             68      .       .
002             .       82      .
002             .       .       97

我希望这些行如下所示:

StudentNumber   Test1   Test2   Test3
001             94      86      75
002             68      82      97

我习惯于使用 COALESCE 函数合并列,但我不确定如何对行执行此操作。

【问题讨论】:

    标签: sas coalesce


    【解决方案1】:

    您可以使用UPDATE 语句来执行此操作。更新语句期望每个 BY 组具有一个具有唯一观察值的源数据集,以及每个 BY 组可以具有多个观察值的事务数据集。只有交易的非缺失值才会改变值。在应用了所有事务的情况下,每个 BY 组的输出将有一个观察结果。

    您可以通过将数据集选项obs=0 添加到第一个引用,将现有数据用作源数据集和交易数据集。

    data want;
       update have(obs=0) have;
       by studentnumber;
    run;
    

    【讨论】:

    • 是的,这行得通!最初我的代码中有一个错误,但这是完美的!
    猜你喜欢
    • 2018-05-04
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    • 2015-06-13
    • 1970-01-01
    • 2014-12-28
    • 2013-10-09
    • 1970-01-01
    相关资源
    最近更新 更多