Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sas 如何组合具有公共变量的数据集?_Sas - Fatal编程技术网

Sas 如何组合具有公共变量的数据集?

Sas 如何组合具有公共变量的数据集?,sas,Sas,我有两个数据集,比如A和B,它们共享公共变量。我需要用公共变量合并A和B。请建议我该怎么做。您真的应该提供更多的信息,例如每个表的记录布局是什么,您希望最终得到什么以及您已经尝试过的内容。也就是说,您可以按如下方式使用proc sql: proc sql; create table new_data as select a.*,b.* from table1 as a inner join

我有两个数据集,比如A和B,它们共享公共变量。我需要用公共变量合并A和B。请建议我该怎么做。

您真的应该提供更多的信息,例如每个表的记录布局是什么,您希望最终得到什么以及您已经尝试过的内容。也就是说,您可以按如下方式使用proc sql:

proc sql;
     create table new_data as
            select a.*,b.*
                   from table1 as a
            inner join
                        table2 as b
            on a.common_var = b.common_var;
            quit;
注意,如果a和b有共同的命名变量,表1中的变量将被重写。如果要保留这两组变量,则需要执行以下操作:

select a.*,b.var1 as bvar1,b.var2 as bvar2 ....

这个答案假设您有一个可以合并的变量。如果你不知道,你可能想看看proc merge。

这是一个入门级的问题,你只需在谷歌上搜索就可以找到答案。 无论如何,您可以使用merge语句,请记住: 1) 按照将用作每个数据集合并键的变量进行排序,然后 2) 请记住,对于将用作合并键的变量,这两个数据集的名称、性质和长度应该相同。 3) 还请记住,如果在两个数据集中都有同名的变量,但这些变量不会用作合并键,那么在输出数据集中只有一个数据集中的变量,如果是您的情况,请重命名其中一个

代码将是

proc sort data=A; by mergekey1 mergekey2; run; /*sorting A dataset by mergekeys, please add merge key to the list*/
proc sort data=B; by mergekey1 mergekey2; run;  /*same for B dataset*/

data want;

merge A B;
by mergekey1 mergekey2;
run;