[英]SAS Output Data between dates
我有一個包含有效和終止日期的客戶表。 我沒有創建一條記錄,而是嘗試創建一個表,該表在成員活躍的每個月每年和每月都有一條記錄。 有沒有一種簡單的方法可以在 SAS 中創建所需的表? 僅供參考,原始表將有幾千條記錄,大約有十幾個列,但現在想讓示例保持簡單。 此外,所需表中的記錄之間沒有線,只是為了便於參考而添加。 謝謝。
原始表
名稱 Eff_date Term_Date
約翰 1/1/2020 3/31/2020
艾米 3/1/2019 3/10/2019
所需表
名稱 Eff_date Term_Date Eff_YM
約翰 1/1/2020 3/31/2020 202001
約翰 1/1/2020 3/31/2020 202002
約翰 1/1/2020 3/31/2020 202003
艾米 3/1/2019 3/10/2019 201903
INTCK() 將找到兩個日期之間的月數
INTNX() 將日期增加指定的數量,即 1 個月,1 周
一個顯式的 OUTPUT 語句將為每個月寫一個新行
data have; informat name $8. date_start date_end mmddyy10.; format name $8. date_start date_end mmddyy10.; input Name date_start date_end; cards; John 1/1/2020 3/31/2020 Amy 3/1/2019 3/10/2019 ;;;; run; data want; set have; nMonths=intck('month', date_start, date_end, 'C'); do i=0 to nMonths; Effective_YM=intnx('month', date_start, i, 's'); format effective_YM yymmn6.; OUTPUT; end; drop nMonths; run;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.