楼主: zhangkun1988
6429 13

公式用SAS计算 [推广有奖]

  • 2关注
  • 0粉丝

初中生

47%

还不是VIP/贵宾

-

威望
0
论坛币
20 个
通用积分
0
学术水平
0 点
热心指数
1 点
信用等级
0 点
经验
118 点
帖子
16
精华
0
在线时间
12 小时
注册时间
2010-8-29
最后登录
2013-3-14

楼主
zhangkun1988 发表于 2012-11-21 08:44:13 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
要求生成一个dataset 有两列,第一列是这些算式,比如1+1   2*(1+3)之类。 第二列是结果。

二维码

扫码加我 拉你入群

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

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

关键词:dataset DataS Data Set TAS 计算

回帖推荐

老师她摸我 发表于6楼  查看完整内容

%macro ans; data _null_; set equation end=last; i+1; ii=left(put(i,2.)); call symput('eq'||ii,eq); if last then call symput('total',ii); run; data equation1; %do ii=1 %to &total; ans=%eval(&&eq&ii); output; %end; run; data equation; set equation; id=_n_; run; data equation1; set equation1; id=_n_; run; proc sql; create table equation3 as select eq,ans from equation,equation1 ...

hopewell 发表于4楼  查看完整内容

本帖被以下文库推荐

沙发
playmore 发表于 2012-11-21 09:29:43
你用下面的试试?
  1. data equation1;
  2. set equation;
  3. ans=%eval(eq);
  4. run;
复制代码
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

藤椅
zhangkun1988 发表于 2012-11-21 10:39:30
playmore 发表于 2012-11-21 09:29
你用下面的试试?
这样算出来的答案都是1.。。。
没有将eq变成宏  貌似不行吧

板凳
hopewell 发表于 2012-11-21 10:42:18
  1. %macro c2n(string);
  2.     %let number=%sysevalf(&string);
  3.     &number
  4. %mend c2n;
  5. data raw;
  6.     input string :$20.;
  7.     number=input(resolve(cats('%c2n(',string,')')),best.);
  8. datalines;
  9. 1+1
  10. 2*1.2
  11. 1/3
  12. 2**2
  13. 2*(1+3)
  14. ;
复制代码
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
jingju11 + 5 + 5 + 5 精彩帖子

总评分: 学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

观钓颇逾垂钓趣 种花何问看花谁

报纸
zhangkun1988 发表于 2012-11-21 10:53:07
hopewell 发表于 2012-11-21 10:42
谢谢大牛!!!!!

十分准确 太厉害了!

地板
老师她摸我 发表于 2012-11-21 16:10:32
%macro ans;
data _null_;
set equation end=last;
i+1;
ii=left(put(i,2.));
call symput('eq'||ii,eq);
if last then call symput('total',ii);
run;
data equation1;
%do ii=1 %to &total;
ans=%eval(&&eq&ii);
output;
%end;
run;
data equation;
set equation;
id=_n_;
run;
data equation1;
set equation1;
id=_n_;
run;
proc sql;
create table equation3 as select eq,ans from equation,equation1
where equation.id=equation1.id;
quit;
%mend ans;
%ans


欢迎加入SAS群:144839730-蜗牛

7
zhangkun1988 发表于 2012-11-21 20:43:26
老师她摸我 发表于 2012-11-21 16:10
%macro ans;
data _null_;
set equation end=last;
厉害厉害!!!
这个方法比较基本 比较适合我!!

8
zhangkun1988 发表于 2012-11-22 02:55:06 来自手机
老师她摸我 发表于 2012-11-21 16:10
%macro ans;
data _null_;
set equation end=last;
如果公式之中有括号 在定义宏的时候会报错啊

9
老师她摸我 发表于 2012-11-22 09:23:59
zhangkun1988 发表于 2012-11-22 02:55
如果公式之中有括号 在定义宏的时候会报错啊
我试了下,没问题啊,什么错呢?
调用宏前先检查一下看看数据集是否完整,也即CSV是否正确导入。
欢迎加入SAS群:144839730-蜗牛

10
jingju11 发表于 2012-11-22 10:17:57
hopewell 发表于 2012-11-21 10:42
%SYSEVALF() is not able to resolve the functions, for example, exp(), constant('pi'), etc. Do you have any idea about that?
Jingju

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-28 14:55