我希望通过将我的代码转换为数组和循环来提高我的代码效率。我正在使用的数据是这样开始的:
ID Mapping Asset Fixed Performing Payment 2017 Payment2018 Payment2019 Payment2020
1 Loan1 1 1 1 90 30 30 30
2 Loan1 1 1 0 80 20 40 20
3 Loan1 1 0 1 60 40 10 10
4 Loan1 1 0 0 120 60 30 30
5 Loan2 ... ... ... ... ... ... ...
因此,对于每个 ID(基本上是按映射、资产、固定和执行排序的数据),我希望为支付方案构建一个配置文件。
第一个 ID 的支付向量如下所示:
PaymentVector1 PaymentVector2 PaymentVector3 PaymentVector4
1 0.33 0.33 0.33
它由公式表示
PaymentVector(I)=Payment(I)/Payment(1)
以上可以在数组中创建,如果您愿意,可以给出示例代码。
接下来,假设每次付款都会被替换,即 2018 年支付 30 时,必须替换,依此类推。
我正在寻找一个显示付款移动的配置文件(并且为了说明,但在代码中不需要,在括号中的流入),这样的付款移动 - 对于 ID = 1:
Payment2017 Payment2018 Payment2019 Payment2020
17 (+90) -30 -30 -30
18 N/A (+30) -10 -10
19 N/A N/A (+40) -13.3
20 N/A N/A N/A (+53.3)
因此,如果您向前看,可以想到行是哪一年,而列则代表即将到来的年份。
因此,在 2019 年,查看 2017 年和 2018 年要支付的款项是不适用的,因为这些款项已经过去/现在无法支付。
至于 2018 年,看 2019 年必须支付的费用,你必须支付你现在拥有的钱的三分之一,所以 -10。
我一直在努力将这个数据集逐行转换为数组,但肯定有一种使用数组的更快方法:
到目前为止,我使用的代码如下所示:
Data Want;
Set Have;
Array Vintage(2017:2020) Vintage2017-Vintage2020;
Array PaymentSchedule(2017:2020) PaymentSchedule2017-PaymentSchedule2020;
Array PaymentVector(2017:2020) PaymentVector2017-PaymentVector2020;
Array PaymentVolume(2017:2020) PaymentVolume2017-PaymentVolume2020;
do i=1 to 4;
PaymentVector(i)=PaymentSchedule(i)/PaymentSchedule(1);
end;
明天我会添加代码......但无论如何代码都不起作用。