2012-03-20 61 views
2

两组数据:合并一行到所有在一个单一的数据步骤

  1. 第一数据集有许多意见:

    data ds1; 
        do var1=1 to 3; 
        output; 
        end; 
    run; 
    
  2. 第二数据集具有1个观察:

    data ds2; 
        var2=1; 
    run; 
    

ea中的变量数ch数据集是无关紧要的。

我要合并在DS2在DS1所有观测的单个观测得到:

数据集DS3:

VAR1 VAR2 
1 1 
2 1 
3 1 

我知道我可以使用PROC SQL的步骤做:

proc sql noprint; 
    create table ds3 as 
    select a.*, b.* 
    from ds1 as a, ds2 as b; 
quit; 

是否可以通过单个数据步骤进行预成型?

+1

您的数据示例太小,无法完全理解您想要的内容。你是说你将在VAR1中拥有一个具有多个值的数据集,并且在VAR2中拥有一个具有1个值的数据集,并且你希望将它们合并成一个数据集,使用DATA STEP?为了让你的单变量VAR2在MERGED数据集中的每个观察中? – 2012-03-20 18:06:59

+0

@ CarolinaJay65 - 我已经更新了这个问题。 – DavB 2012-03-20 18:24:38

回答

8

如果VAR2总是将是1,那么这会工作:

ds3; 
    retain var2 1; 
    do var1 = 1 to 3; 
     output; 
    end; 
run; 

同样,如果DS1和DS2已经存在,并且DS2只有一个观察在你的榜样,那么这应该工作:

ds3; 
    set ds1; 
    if _n_ eq 1 then do; 
     set ds2; 
    end; 
run; 
+0

第二种解决方案就是我一直在寻找的东西。谢谢。 – DavB 2012-03-21 08:17:26