好的,所以我有一個客戶ID和一個會話ID。對於多個重複會話ID的第一個,我有一個客戶ID,但對於後面的我不。我需要將我已下達的客戶ID複製到同一會話中的其他空白處。我的代碼嘗試如下:複製一個變量從第一個變量到最後一個變量的觀察
proc sort data=weblogsnew1;
by session_id descending customer_id;
run;
data weblogsnew2;
set weblogsnew1;
by session_id descending customer_id;
if first.session_id then do until(last.session_id);
customer_id=first.customer_id;
end;
run;
此代碼旋轉不休,但沒有任何反應?我可能需要做一些DOW循環,但我是一個相對的初學者,它讓我困惑,所以我希望有人能給我一些方向。
SESSION_ID ............. CUSTOMER_ID
1442103120308 ..... f8d63284bc0b463a93c588fef719bee0
1442103120308 ..... 0
1442103120308 ..... 0
1442103120308。 .... 0
1442103120308 ..... 0
1442103120308 ..... 0
1442103120308 ..... 0
1442103202937 ..... 4f13e0aebdda4811834285efe9543446
1442103202937 ..... 4f13e0aebdda4811834285efe9543446
1442103202937 ..... 4f13e0aebdda4811834285efe9543446
1442103202937 ..... 4f13e0aebdda4811834285efe9543446
1442103202937 ..... 4f13e0aebdda4811834285efe9543446
1442103202937 ..... 0
1442103202937 ..... 0
1442103202937 .. ... 0
1442103202937 ..... 0
1442103202937 ..... 0
1442103202937 ..... 0
1424466798849 ..... 0
1424466798849 ... .. 0
1424466798849 ..... 0
在某些情況下,我只有0的,所以只使用retain語句不起作用。
因爲我在格式化方面很糟糕,所以只是打破了兩列。
可能重複(http://stackoverflow.com/questions/ 30642482/an-efficient-way-to-copying-values-in-subsequent-records-sas) – Reeza
從我所瞭解的你不需要循環,你需要一個RETAIN。如果這不正確,請發佈一些示例數據以幫助澄清您的問題。 – Reeza
發送的鏈接@Reeza中的retain語句不起作用,因爲在某些情況下,永遠不會有customer_id(即只有0),並且在這種情況下,以前的customer_id會被保留到新的會話中。 我需要customer_id由session_id決定,包括它們都是0的情況。 –