【问题标题】:How to Merge Datasets of this kind in SAS?如何在 SAS 中合并此类数据集?
【发布时间】:2019-12-04 06:03:52
【问题描述】:

我有两个这种类型的 SAS 数据集。

数据集A

数据集 B

我期望的输出如下所示。这不过是数据集 A - 数据集 B

我对 SAS 非常陌生,所以我无法理解如何合并这两个数据集并找到值之间的差异。我在这里面临的另一个挑战是合并应该在行到行的基础上而不是列上完成。即例如

The value in First Column should match with the Value of First column in the Dataset b. 
Then if that Matches the Values in Second columns should match. If they Match then the values in the 3rd Columns should get subtracted. 

即使我无法合并两个数据集,是否还有其他方法可以找到值之间的差异并将其存储在新的 SAS 输出文件中。

有人可以帮我解决这个问题吗?提前致谢。

【问题讨论】:

  • 以文本形式发布您的数据并展示您的尝试。
  • 您发布的图片看起来不像数据集。变量是什么?数据代表什么。
  • 它们是数据集还是 Excel 电子表格?
  • 这看起来像家庭作业
  • 大家好,对于不完整的问题,我深表歉意。实际上问题是,在准备问题时,我无法以表格形式发布答案,这就是为什么必须从 Excel 中粘贴值的原因,我对此非常陌生,我每天都在学习。跨度>

标签: merge sas enterprise-guide


【解决方案1】:

h这行得通吗:

data have1;
  m = 'x'; n = 'a'; val = 1; output;
  m = 'x'; n = 'b'; val = 23; output;
  m = 'y'; n = 'e'; val = 12; output;
  m = 'y'; n = 'f'; val = 13; output;
run;

data have2;
  m = 'x'; n = 'a'; val = 2; output;
  m = 'x'; n = 'b'; val = 3; output;
  m = 'y'; n = 'e'; val = 13; output;
  m = 'y'; n = 'f'; val = 15; output;
run;

proc sql;
  create table want as
  select h1.m, h1.n, h1.val - h2.val from have1 h1, have2 h2 where h1.m = h2.m and h1.n = h2.n;
  quit;

m 列实际上在这里没有任何作用,因为当 m 改变时 n 是唯一的。也许这正是您展示示例的方式

【讨论】:

  • 非常感谢 :) 这让我对如何解决这个问题有了一个想法。在 SAS 中有什么方法可以在合并两个数据集之前先删除 Empty 行。
  • 什么是空行?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-09
  • 1970-01-01
  • 2017-03-26
  • 1970-01-01
  • 1970-01-01
  • 2018-05-04
相关资源
最近更新 更多