楼主: zorro2004
1147 1

[问答] 宏循环中的格式转换 [推广有奖]

  • 0关注
  • 0粉丝

硕士生

35%

还不是VIP/贵宾

-

威望
0
论坛币
1 个
通用积分
2.8501
学术水平
1 点
热心指数
6 点
信用等级
0 点
经验
2259 点
帖子
77
精华
0
在线时间
118 小时
注册时间
2012-4-16
最后登录
2024-12-9

楼主
zorro2004 发表于 2018-12-12 14:44:38 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data miss;
run;
%macro a;
%do i= 1 %to 25;
data _null_;
set mulu;
if _n_ =&i then call symput("bl",NAME);
run;
proc sql;
select count(id) into:no
from xinxi_f
where  &bl is null;
quit;
data miss;
set miss;
&bl=input(&no,8.);
run;
%end;
%mend;
%a;
代码如上,宏变量no是用sql从数据集中取出的一个数字,基本为6位数,因为宏变量获取的是字符型,所以用input转换了下,但是结果会被截断为2位,检查过,宏变量提取没问题,如果用%let=%eval(&no)预先转换也没有问题,但就是用了input那句就不行,烦请大神帮忙看下,是什么原因



二维码

扫码加我 拉你入群

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

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

关键词:变量提取 数据集中 字符型 数据集

本帖被以下文库推荐

沙发
learsaas 发表于 2018-12-13 15:34:57
以下两个地方的差异(与你代码段对比):
select count(id) into:no TRIMMED
&bl=input("&no",8.);

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-3 04:19