SAS Proc Transpose数据4

时间:2018-03-22 04:29:27

标签: sas transpose

在SAS中我有类似的东西......

ID  survey  Q1  q1_2  Q2  q2_2 Q3  q3_2
1     1      1        0        1    
1     2          0         1        1
2     2          1         1        0

我不确定移调是否是正确的方法,但我想得到这样的东西。

ID  survey  Q Response
1    1      1   1 
            2   0
            3   1
     2      1   0
            2   1
            3   1
2    2      1   1
            2   1
            3   0

其中Q1和Q1_2是在随时间推移的两次不同调查中提出的相同问题

2 个答案:

答案 0 :(得分:1)

你需要的只是合并功能。

 proc sql;
   select id, 
          survey,  
           coalesce(Q1,q1_2) as q1,
           coalesce(Q2,q2_2) as q2,
           coalesce(Q3,q3_2) as q3
    from yourtable;
    quit;

答案 1 :(得分:0)

您可以使用SQL UNION CORR附加Survey 1&调查2 ...&调查N数据。 代码:

/*Append Survery 1 & Suervey 2 data to each other*/
proc sql;
create table want as 
select 
    id, survey, q1, q2, q3 
    from have
    where survey=1
union corr
select
    id, survey, 
    q1_2 as q1, 
    q2_2 as q2, 
    q3_2 as q3
    from have
    where survey=2
;
quit;

输出:

ID=1 survey=1 Q1=1 Q2=0 Q3=1 
ID=1 survey=2 Q1=0 Q2=1 Q3=1 
ID=2 survey=2 Q1=1 Q2=1 Q3=0