有一段SAS程序,需要用R实现。问题主要是关于IF和DO循环。
下面SAS程序里,%macro abc的if不能用R 的if statement(if只对比第一行)。所以我考虑用ifelse。这样就解决了t和f的对比问题。
可是后面的Do循环该怎么办呢?特别是那个r[t - i]。我考虑用R里面的apply()系列函数,但也没想好怎么办。
也许还有更好的办法,欢迎指教。
- data One;
- input t f u s ;
- cards;
- 0 1 10000 5
- 5 2 20000 6
- 2 1 30000 7
- 3 2 40000 8
- 0 4 50000 9
- 7 6 60000 3
- 2 2 70000 2
- ;
- run;
- %macro abc;
- sum = 0;
- if t - f >=0 then do;
- Do i=0 to (f-1);
- sum = sum + max(0, r[t - i]); /* 主要是这句怎么写*/
- end;
- end;