登录
  • #数学|统计

SA‌‌‍‍‌‍‌‌‌‌‍‍‌‍‌‍‍‍‍‍‍‍‍‍‌‍‍‍‌‌‌‌S和R里面IF和DO的问题

wx2123
183
0
有一段SAS程序,需要用R实现。问题主要是关于if 和do。

%macro abc里面的if不能用R 的if statement(if只对比第一行)。所以我考虑用ifelse。这样就解决了t和f的对比问题。

可是后面的Do循环该怎么办呢?特别是那个r。我考虑用apply()系列的函数,但也没想好怎么办。

也许还有更好的办法,欢迎指教。
data One;[br][/br][br][/br]	input  t f u s ;[br][/br][br][/br]	cards;[br][/br][br][/br]0  1  10000 5                                                                                                               [br][/br][br][/br]5  2  20000 6                                                                                                          [br][/br][br][/br]2  1  30000 7                                                                                                              [br][/br][br][/br]3  2  40000 8                                                                                                              [br][/br][br][/br]0  4  50000 9[br][/br][br][/br]7  6  60000 3[br][/br][br][/br]2  2  70000 2                                                                                                                  [br][/br][br][/br];[br][/br][br][/br]run;[br][/br][br][/br]%macro abc;[br][/br][br][/br]  sum = 0;[br][/br][br][/br]  if t - f >=0 then do;[br][/br][br][/br]      Do i=0 to (f-1);[br][/br][br][/br]          sum = sum + u * max(0, r[i]);[br][/br][br][/br]      end;[br][/br][br][/br]  end;[br][/br][br][/br]  else do;[br][/br][br][/br]      Do i=1 to t;[br][/br][br][/br]          sum = sum + 2;[br][/br][br][/br]      end;[br][/br][br][/br]      sum = sum + 88;[br][/br][br][/br]    end;[br][/br][br][/br]    drop i;[br][/br][br][/br]%mend;[br][/br][br][/br]data Two;[br][/br][br][/br]  set One;[br][/br][br][/br]  array r{0:7} _temporary_;[br][/br][br][/br]  r[t] = s;[br][/br][br][/br]  %abc;[br][/br][br][/br]run;[/i]
0条回复
热度排序

发表回复