楼主: xiaoqiu917
1300 4

[原创博文] 求高手解答下,谢谢。 [推广有奖]

  • 0关注
  • 0粉丝

讲师

29%

还不是VIP/贵宾

-

威望
0
论坛币
2089 个
通用积分
6.6000
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
229910 点
帖子
204
精华
0
在线时间
569 小时
注册时间
2006-8-3
最后登录
2025-10-14

楼主
xiaoqiu917 发表于 2011-9-30 11:22:27 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
我正在学习sas,写了一小段程序,在一个宏里面。具体情况这样:我有一个数据集,需要做循环取出数据集中某些字段进行后续的工作。但是取出的字段值要进行比较,如果值相同则只使用数据集中的第一行取出的值,当该比较的字段值不一致时又再使用从该行取出的值。
程序段如下:
  %LET k=0;
%MACRO p_cl;
DATA _NULL_;
  SET work.p_split;
  CALL SYMPUT("k",_n_);
RUN;
%DO i=1 %TO %EVAL(&k.);/*数据集循环*/
  %let m=&i.;
  %let n=%EVAL(&i.-1);
  DATA _NULL_;
   SET work.P_split(obs=&i.);
   CALL SYMPUT("lib_name",compress(libname));
   CALL SYMPUT("data_name",compress(memname));
   CALL SYMPUT("name",compress(name));
  RUN;
  %let data_name&m.=&data_name.;
  %if %EVAL(&m.)='1' or (&data_name.&m.^=&data_name.&n.) %then %do;
…………
运行后出现的问题是,比如说我头3个观测中,data_name的值都是一样的,但是在if的判断中,好像对&data_name.&m.^=&data_name.&n.的判断并未生效,或者说整个判断都未生效,该语句的后续将会重复执行。

因为不知道存在什么错误,请高手不吝指教。谢谢

按我的设想当第2次循环管出的data_name和第一次一样的时候,后续语句是不执行的。
二维码

扫码加我 拉你入群

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

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

关键词:求高手解答 求高手 compress libname symput

沙发
xiaoqiu917 发表于 2011-10-2 22:27:10
请各位尽快帮忙啊,急

藤椅
xiaoqiu917 发表于 2011-10-7 12:32:38
高手们还没回来吗?

板凳
xiaoqiu917 发表于 2011-10-8 08:19:17
真的没有人知道为什么吗?

报纸
ntsean 发表于 2011-10-8 22:37:57
&data_name.&m => &&data_name.&m

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

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