【问题标题】:joining 2 tables with specific conditions加入 2 个具有特定条件的表
【发布时间】:2017-04-17 01:00:38
【问题描述】:

我有 2 张桌子。第一个是原始的,包含 row_number 和几个字段。

row_num col1 col2 1个 2 天 3 e f

第二张表是第一张表的报告,显示错误类型、列名和行号:

m_id 字段 row_num m1 col1 1 m1 col1 3 m2 col2 2

我的任务是根据 row_num 和列将表 1 中每个字段的值加入到第二个表中,应该是这样的:

m_id 字段 row_num 值 m1 col1 1 一个 m1 col1 3 e m2 col2 2 天

我尝试过使用各种转置,例如使用 by 和 id 参数,但我知道使用宏会更容易。

proc sort data=a1;
by row_num;
run;
proc transpose data=a1 out=a2;
by row_num;
var m_id;
run;

【问题讨论】:

    标签: join merge macros sas


    【解决方案1】:

    您可以合并(排序的)集合并使用 VVALUEX() 以编程方式按名称获取变量的(字符)值。

    类似:

    data combined;
      merge first second;
      by row_num;
      value = vvaluex(field);
      keep m_id field row_num value;
    run;
    

    这假设 row_num 在第一组中是唯一的。

    【讨论】:

      猜你喜欢
      • 2021-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      • 2013-10-03
      • 1970-01-01
      相关资源
      最近更新 更多