2016-04-11 55 views
0

我有一些數據集,例如。將觀測值置於一個變量中SAS EG

card1 stick2 
card3 stick2 
card1 stick1 
card4 stick1 

我需要得到與resul一個新的變量:(最終outData)以

     new_variable 
    card1 stick2  card1,card3 
    card3 stick2  card1,card3 
    card1 stick1  card1,card4 
    card4 stick1  card1,card4 

我需要收集具有每棒在new_variable

+0

如果您明確規定創建變量的規則,它會有所幫助。試圖從數據中找出它是最乏味的。請同時發佈您試圖遵守SO規則的內容。 – Reeza

回答

1

所有卡的觀察嘗試catx功能

new_variable = catx(',',var1,var2); 

來自SAS幫助: CATX函數 - 刪除前導空格和尾隨空格,插入分隔符,並返回連接的字符串。

[編輯]

您將需要通過棒,過程中一個步驟的數據進行排序,並重新合併的結果。

proc sort data=have; 
by stick; 
run; 

data new_var; 
set have; 
by stick; 

format new_variable $200.; 
retain new_variable; 

if first.stick then 
    new_variable = ""; 

new_variable = catx(",",new_variable,card); 

if last.stick then 
    output; 
run; 

data want; 
merge have new_var(keep=stick new_variable); 
by stick; 
run; 
+0

在不同行中的觀察,你可以看到,它不會工作 – bobby1232

+2

然後請編輯你的問題,更多的解釋你所嘗試的邏輯。 – DomPazz

+0

對不起,我犯了一個錯誤,我需要收集所有卡片觀察結果,每個卡片都有一個新變量 – bobby1232