楼主: wx2123
673 2

[问答] SAS和R里面IF和DO的问题 [推广有奖]

  • 1关注
  • 2粉丝

硕士生

67%

还不是VIP/贵宾

-

威望
0
论坛币
5650 个
通用积分
221.8077
学术水平
1 点
热心指数
5 点
信用等级
0 点
经验
3111 点
帖子
93
精华
0
在线时间
188 小时
注册时间
2015-9-10
最后登录
2024-2-20

楼主
wx2123 在职认证  发表于 2021-12-13 01:38:42 |只看作者 |坛友微信交流群|倒序 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

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

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


可是后面的Do循环该怎么办呢?特别是那个r。我考虑用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 + u * max(0, r);

    end;

  end;

  else do;

    Do i=1 to t;

      sum = sum + 2;

    end;

    sum = sum + 88;

  end;

  drop i;

%mend;

data Two;

  set One;

  array r{0:7} _temporary_;

  r[t] = s;

  %abc;

run;


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:SAS和R statement TEMPORARY Statemen Statem SAS

沙发
s609078902 发表于 2021-12-13 23:10:47 |只看作者 |坛友微信交流群
do 是不是 R 里面的 when 循环,主要是我看不懂 SAS 代码的意思

使用道具

藤椅
wx2123 在职认证  发表于 2021-12-14 12:23:41 |只看作者 |坛友微信交流群
s609078902 发表于 2021-12-13 23:10
do 是不是 R 里面的 when 循环,主要是我看不懂 SAS 代码的意思
你是说case_when还是while。我觉得主要问题是怎么在ifelse里面写循环,感觉要用apply函数,不过还没想出来。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-13 03:53