【发布时间】:2016-11-18 21:26:58
【问题描述】:
我有下表_1:
TPMC PWC PWSC Site ET Date Time DIAM PXMC SF
7101 7101 US000521 1 Lathing 08Nov2016 11:58 890.3 1
7102 7102 US000361 1 Lathing 02Nov2016 13:01 878.1 1
7102 7102 UC000348 2 Lathing 07Nov2016 18:22 877.3 1
7106 7106 UC00424 1 Lathing 05Oct2016 9:43 890,4 1
7106 7106 UC00437 3 Lathing 07Nov2016 18:23 877.1 1
7106 7106 UC309 4 Lathing 07Nov2016 18:26 877.8 1
7107 7107 UC05327 1 Lathing 06Oct2016 8:41 837 1
7107 7107 UC200 2 Lathing 13Oct2016 12:53 890.55 1
7108 7108 UC000361 3 Lathing 02Nov2016 13:01 878.1 1
7108 7108 UC00432 1 Lathing 07Nov2016 18:25 877.8 1
7108 7108 UC106 2 Lathing 03Oct2016 9:37 890.3 1
和 table_2 :
TPMC PWC PWSC Site ET Date Time DIAM PXMC SF
7101 . . . . 01JAN16 . . . .
7101 . . . . 02JAN16 . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
7101 . . . . 30DEC16 . . . .
7101 . . . . 31DEC16 . . . .
7102 . . . . 01JAN16 . . . .
7102 . . . . 02JAN16 . . . .
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .
7102 . . . . 30DEC16 . . . .
7102 . . . . 31DEC16 . . . .
我想合并两个表,使输出看起来像这样:
TPMC PWC PWSC Site ET Date Time DIAM PXMC SF
7101 . . . . 01JAN16 . . . .
7101 . . . . 02JAN16 . . . .
. . . . . . . . . .
7101 7101 US000521 1 Lathing 08Nov2016 11:58 890.3 1
. . . . . . . . . .
. . . . . . . . . .
7101 . . . . 30DEC16 . . . .
7101 . . . . 31DEC16 . . . .
7102 . . . . 01JAN16 . . . .
7102 . . . . 02JAN16 . . . .
. . . . . . . . . .
7102 7102 US000361 1 Lathing 02Nov2016 13:01 878.1 1
7102 7102 UC000348 2 Lathing 07Nov2016 18:22 877.3 1
. . . . . . . . . .
. . . . . . . . . .
7102 . . . . 30DEC16 . . . .
7102 . . . . 31DEC16 . . . .
如何使用“Proc SQL”或“Data Merge”或“Combine”来完成?
以我使用的最简单的形式:
data data_set;
set table_1 table_2;
run;
但这会产生重复的日期值。例如:
TPMC PWC ET PWSC Site Date Time DIAM PXMC SF
7618 . . . 1 29SEP2016 . . .
7618 . . UC00424 2 30SEP2016 . . .
7618 . Lathing UC00437 1 30SEP2016 17:15 890.500000 . .
7618 . Lathing UC309 2 30SEP2016 20:32 890.500000 . .
7618 . . . 3 01OCT2016 . . .
7618 . . . 1 02OCT2016 . . .
我不知道如何避免这种情况。我不想要没有 'ET' 的行(即 ET 是 '.' 或为空,我不想要那些行)。
我也想学习其他方法以备将来使用。
【问题讨论】:
-
请简化您的问题,以便清楚您想要得到什么。如前所述,很难看出你想要得到什么以及问题可能是什么。如果你想自己解决这个问题,SAs 文档中有一个关于组合数据集的部分support.sas.com/documentation/cdl/en/lrcon/68089/HTML/default/…
-
您当前正在堆叠/追加未合并的数据集。合并并排引入记录,堆栈添加行。明确您的要求。
-
@Reeza 它正在将 table1 的数据与 table2 的数据相加(按 TPMC 和日期排序)。但由于没有 ET(点 . 那里),我不希望这一行出现在决赛桌中。
-
然后一个 WHERE 应该过滤掉结果。发布您的代码和日志 - 请通过编辑您的问题,而不是在 cmets 中。
标签: sas