【问题标题】:Merge dataset without common variable (By)?合并没有公共变量(By)的数据集?
【发布时间】:2014-03-26 19:10:39
【问题描述】:

目前我有两个具有相似变量列表的数据集。每个数据集都有一个过程变量。我想比较数据集之间过程变量的频率。我在两个数据集中创建了一个标志来标识源数据集,并且将要合并但没有通用标识符。如何在不删除任何观察结果的情况下合并数据集?这不仅仅是没有By 函数的简单Merge,对吧?

目前有:

 Data.a       Data.b 
   pproc    proc1_numb
    70           9
    71          15
    77          24
    80          80
    81          42
    83          71
    86          66
    87          125
    121         159
    125         242

想要输出:

pproc freq
9     1
15    1
24    1
42    1
66    1
70    1
71    2
77    1
80    2
81    1
83    1
86    1
87    1
121   1
125   2
159   1
242   1

【问题讨论】:

  • 使用set 声明。我错过了什么吗?
  • 所以,只是数据新集 a b; ?
  • BellevueBob 所说的。

标签: sas


【解决方案1】:

如果我正确理解您的问题,您应该将两个数据集合并为一个并重命名变量。然后您可以使用 PROC MEANS 来获取频率。像这样的:

data all;
  set a
      b(rename=(proc1_numb=pproc));
run;

proc means nway data=all noprint;
  class pproc;
  output out=want(drop=_type_ rename=(_freq_=freq));
run;

【讨论】:

  • 感谢@BellevueBob,这似乎解决了它。我意识到我原来的输出布局不正确。但是,使用 data.a 和 data.b 的标志创建了不同的频率计数——因为我确实需要每个数据集的过程 X 的频率。再次感谢!
猜你喜欢
  • 2014-07-27
  • 2019-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-06
  • 2022-08-05
  • 2019-04-15
相关资源
最近更新 更多