我目前在 SAS 工作并以这种方式利用数组:
Data Test;
input Payment2018-Payment2021;
datalines;
10 10 10 10
20 20 20 20
30 30 30 30
;
run;
在我看来,这会自动假设一个限制,无论是年初还是年底(如果我错了,请纠正我)
所以,如果我想说这是 6 月的数据,并且付款将每 9 个月增加 50%,我正在寻找一种方法让我的代码认识到我的年限是从 6 月底到下一个 6 月底
例如,如果我想说
Data Payment_Pct;
set test;
lastpayrise = "31Jul2018";
array payment:
array Pay_Inc(2018:2021) Pay_Inc: ;
Pay_Inc2018 = 0;
Pay_Inc2019 = 2; /*2 because there are two increments in 2019*/
Pay_Inc2020 = 1;
Pay_Inc2021 = 1;
do I = 2018 to 2021;
if i = year(pay_inc) then payrise(i) * 50% * Pay_Inc(i);
end;
run;
为一个条目手动执行此操作对我来说很好,但对于我的 uni 项目,我需要算法自己解决这些问题,我目前正在阅读 intck 但任何帮助将不胜感激!
Ps 如果有一个算法可以创建以下内容,那就太好了
Pay_Inc2019 Pay_Inc2020 Pay_Inc2021
1 2 1
或者,很高兴知道 SAS 在为 2018:2021 设置数组时是如何工作的,它是假设年底还是您可以将其设置为年中还是?