全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
3185 16
2011-10-28
我现在有两个表,这两个表有相同的变量,现在我想把这两个表纵向连接在一起,并且要穿插的连接,即新表的第1、3、5...行是过去的表1,第2、4、6...行是过去的表2。

我现在的解决方法是先在两个表加个N,表1的N变量依次是1、3、5...,表2的N变量依次是2、4、6...,然后合并,排序,删掉N。觉得有点繁琐,不知道有简单的办法没有。

即使没有,也可以帮我简化下我后面的合并、排序和删掉N的代码,如下所示:

data FCA_Code;
set FCA_Code_temp1 FCA_Code_temp2;
run;
proc sort data=FCA_Code;
by N;
run;
data FCA_Code;
set FCA_Code;
drop N;
run;


我原本想用sql中的insert into把两个表合一个表,然后在一个proc sql中加上order by,结果无法运行。请大牛支招儿吧,谢谢!

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2011-10-28 23:29:47
如果两个数据集的观测数一样大的话可以实现,如果不一样的话,稍加修改也可以实现。
data a;
i=1;output;
i=3;output;
i=5;output;
run;

data b;
i=2;output;
i=4;output;
i=6;output;
run;

data c;
if 1=0 then set a nobs=n1;
do j=1 to n1;
set a point=j;
output;
set b point=j;
output;
end;
stop;
run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-10-29 00:18:40
set + sort 应该可以了,无须额外增加标示:京剧
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-10-29 10:51:59
If your data sets is already sorted by i, then a interleaving using set with by is a easy solution.

data t1;
   do i=1 to 10;
     a='table1';
         output;
        end;
run;

data t2;
   do i=1 to 10;
     a='table2';
         output;
        end;
run;

data t3;
   set t1 t2;
   by i ;
run;

proc print;run;
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-10-29 23:36:40
复制代码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2011-10-30 01:57:41
楼上的方法都不错啊。。相比较还是京剧的代码简洁些啊  不过逻辑别扭些。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群