全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
1022 8
2023-01-11
为什么下面的语句加了%str后就会报错。
%let a=ogeong nogneong;

/*1*/
%let b=%scan(&a.,1,%bquote( ));
/*2*/
%let b=%str(%scan(&a.,1,%bquote( )));


二维码

扫码加我 拉你入群

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

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

全部回复
2023-1-13 15:05:24
加%str的目的是什们呢?
如果是为了把对字符串的处理程序赋给b的话,可以考虑这样:
复制代码
二维码

扫码加我 拉你入群

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

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

2023-1-13 15:09:32
报错信息有吗?
二维码

扫码加我 拉你入群

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

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

2023-1-13 16:50:53
nightmeal 发表于 2023-1-13 15:09
报错信息有吗?
4329  %let a=ogeong nogneong;
4330
4331  /*1*/
4332  %let b=%scan(&a.,1,%bquote( ));
4333  /*2*/
4334  %let b=%str(%scan(&a.,1,%bquote( )));
ERROR: 宏函数 %SCAN 的参数过少。

版本9.4 M1
二维码

扫码加我 拉你入群

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

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

2023-1-13 16:51:52
橙红的果士 发表于 2023-1-13 15:05
加%str的目的是什们呢?
如果是为了把对字符串的处理程序赋给b的话,可以考虑这样:
我想弄清楚错误的机制
二维码

扫码加我 拉你入群

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

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

2023-1-17 10:35:12
%str是在编译宏变量的时候起作用,就是在%str(%scan(&a.,1,%bquote( )))里,sas理解%scan(&a.,1,%bquote( ))只是串字符,不认为&a.是在调用宏变量,自然会出现缺少变量提示;%bquote是执行函数,没有特殊符号的话,这里没有作用,放在这个参数位置感觉本来也不太对
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群