SAS DO LOOP พร้อมวันที่ระบุ

ฉันต้องการสร้างชุดข้อมูลที่ฉันต้องการเก็บเฉพาะวันที่ 5 วันเท่านั้น ดังนั้น &วันที่ของฉันคือ 31 มี.ค. 2020 และ &สิ้นสุดคือ 31 มี.ค. 2025 และฉันต้องการเก็บเฉพาะ 31 มี.ค. ทุกปีจนถึงปี 2025

ด้วยโค้ดของฉันด้านล่าง มันสร้างวันที่สำหรับทุกวันจนถึงวันที่ 31 มีนาคม 2025 และนั่นก็มากเหลือเกิน ฉันจึงต้องการเก็บวันที่เฉพาะไว้เพียง 5 วันเท่านั้น

ฉันจะทำเช่นนั้นได้อย่างไร?

ขอบคุณ

  DATA LOOP;FORMAT ROLL_BASE_DT DATE9.;DO  ROLL_BASE_DT =&DATE TO &ENDdate;OUTPUT;END;RUN;

enter code here

enter code here

person Mikael Holmkvist    schedule 22.04.2020    source แหล่งที่มา


คำตอบ (2)


คุณสามารถใช้เครื่องหมายจุลภาคในคำสั่ง DO เพื่อแสดงรายการหลายค่าได้

do date='31mar2021'd,'31mar2022'd,'31mar2023'd,'31mar2024'd,'31mar2025'd;
  ...
end;

คุณสามารถวนซ้ำค่า YEAR แทนได้

do year=2021 to 2025;
   date=mdy(3,31,year);
  ...
end;

คุณสามารถใช้ INTNX() เพื่อเพิ่มวันที่เป็นปี คุณสามารถใช้ INTCK() เพื่อหาจำนวนครั้งในการรันลูป

do index=0 to intck('year',&DATE,&ENDdate);
  date=intnx('year',&date,index,'s');
  ...
end;
person Tom    schedule 22.04.2020

ถ้าต้องการแค่ 5 วันก็ใส่บัตรได้ (รู้แต่ไม่เคยใช้เป็นการส่วนตัว)

อีกทางหนึ่ง แทนที่จะใช้การวนซ้ำ ให้ตั้งค่าทีละค่าด้วยคีย์เวิร์ดเอาต์พุตหลังจากแต่ละครั้งที่คุณตั้งค่า นั่นควรจะทำ

person Laebrye    schedule 22.04.2020