How to create in SAS a ranking on a specific range of rows?

问题描述 投票:0回答:0

我需要动态检查给定行中的值小于最后 5 行的次数。在 excel 中,我可以使用公式 =COUNTIF(C2:C6;"<="&C2) but I don't know how to do in SAS. Follow the dataset example:

data mydataset;
input var_1 datevar date9. value rank_5;
format datevar date9.;
datalines;
1 30DEC2020 -0.008855155 1 /* excel example (=COUNTIF(C2:C6;"<="&C2)) */
1 29DEC2020 -0.003152585 2 /* excel example (=COUNTIF(C3:C7;"<="&C3)) */
1 28DEC2020 0.026537217 4 /* excel example (=COUNTIF(C4:C8;"<="&C4)) */
1 23DEC2020 0.007170795 3
1 22DEC2020 0.007222587 4
1 21DEC2020 -0.021208226 1
1 18DEC2020 0.047811448 5
1 17DEC2020 0.003378378 3
1 16DEC2020 0.006118287 3
1 15DEC2020 -0.000679348 3
1 14DEC2020 -0.012743125 2
1 11DEC2020 0.013596193 4
1 10DEC2020 0.012388162 4
1 09DEC2020 -0.030687125 1
1 08DEC2020 -0.003324468 2
1 07DEC2020 0.01759134 4
1 04DEC2020 -0.001351351 3
1 03DEC2020 -0.006044325 2
1 02DEC2020 0.004723347 2
1 01DEC2020 0.020661157 3
1 30NOV2020 -0.02811245 1
1 27NOV2020 0.009459459 1
2 30DEC2020 -0.004536617 2
2 29DEC2020 -0.003229974 3
2 28DEC2020 -0.003219575 3
2 23DEC2020 -0.015842839 1
2 22DEC2020 0.010890455 4
2 21DEC2020 -0.009517766 2
2 18DEC2020 0.007028754 4
2 17DEC2020 0.013601036 5
2 16DEC2020 -0.020304569 1
2 15DEC2020 0.000634921 2
2 14DEC2020 0.000635324 2
2 11DEC2020 0.001909612 2
2 10DEC2020 -0.000636132 1
2 09DEC2020 0.00319081 3
2 08DEC2020 0.001918159 2
2 07DEC2020 0.003851091 2
2 04DEC2020 0.008414239 3
2 03DEC2020 -0.003225806 2
2 02DEC2020 0.010430248 3
2 01DEC2020 0.031607263 3
2 30NOV2020 0.00472973 2
2 27NOV2020 -0.012016021 1
run;

我尝试了几种方法,但没有一个效果很好。

loops sas macros ranking
© www.soinside.com 2019 - 2024. All rights reserved.