楼主: playmore
1407 1

[SAS] SAS基础宏之2:SeparateString [推广有奖]

已卖:1645份资源

学科带头人

2%

还不是VIP/贵宾

-

TA的文库  其他...

R相关

经济学相关

金融工程

威望
1
论坛币
16356 个
通用积分
8.6697
学术水平
372 点
热心指数
394 点
信用等级
341 点
经验
15297 点
帖子
1194
精华
1
在线时间
1332 小时
注册时间
2007-1-11
最后登录
2025-12-1

初级学术勋章 初级热心勋章 中级热心勋章

楼主
playmore 发表于 2015-3-7 19:52:36 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
这个宏用于得到由多个单词构成的(用空格分隔单词)宏变量的单词数目,并且把这些单词分别赋给一系列的宏变量
我写的宏中间的参数一般可设置多个数据集/变量,所以需要这个SeparateString把它拆分出来


  1. %macro SeparateString(InputString,OutputString);
  2. /**********************************************************************/
  3. /* 此宏用于将含有一组单词的字符串拆分为一个个的单词,并将这些单词依次 */
  4. /* 存放于一系列宏变量之中。注意,字符串中单词的定义为由字母、数字和下 */
  5. /* 下划线组成的一个整体,而分隔符可以为除字母、数字、下划线以及逗号之 */
  6. /* 外的其他任意字符。其中InputString是所选的字符串,OutputString是输 */
  7. /* 出的字符串前缀,不需要加最后的下划线。 */
  8. /* */
  9. /* 最终得到的是一组单词的宏变量&OutputString._Var1,&OutputString.Var2 */
  10. /* 等以及字符串所含单词数量的宏变量&OutputString._Num。 */
  11. /* */
  12. /* Created on 2012.9.18 */
  13. /* Modified on 2012.12.6 */
  14. /**********************************************************************/

  15. data SS_temp;
  16. Str="&InputString";
  17. run;

  18. data SS_temp;
  19. set SS_temp;
  20. Words=0;
  21. do while(SCAN(Str,Words+1,' ') NE "");
  22. Words+1;
  23. end;
  24. run;

  25. %global &OutputString._Num;

  26. proc sql noprint;
  27. select Words into :&OutputString._Num from SS_Temp;
  28. quit;

  29. %do SS_i=1 %to &&&OutputString._Num;
  30. %global &OutputString._Var&SS_i;
  31. %let &OutputString._Var&SS_i.=%SYSFUNC(SCAN(&InputString,&SS_i,' '));
  32. %end;

  33. /* 去除&OutputString._Num前后的空格 */
  34. %let &OutputString._Num=%SYSFUNC(TRIM(&&&OutputString._Num));

  35. /* 删除不必要的表格 */
  36. proc delete data=SS_temp;
  37. run;

  38. %mend;


  39. %macro Demo();

  40. %let InputString=12 -24;
  41. %let OutputString=a;
  42. %SeparateString(&InputString,&OutputString);

  43. %put &a_Num;
  44. %put &a_Var2;

  45. %mend;
复制代码


二维码

扫码加我 拉你入群

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

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

关键词:separate string sas基础 Rates tring 基础 基础宏 SeparateString SAS

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
xddlovejiao1314 + 100 + 100 + 3 + 3 + 3 精彩帖子
niuniuyiwan + 60 + 60 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 160  论坛币 + 160  学术水平 + 4  热心指数 + 4  信用等级 + 4   查看全部评分

本帖被以下文库推荐

playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

沙发
xddlovejiao1314 学生认证  发表于 2015-10-13 08:40:51
谢谢分享。
已有 1 人评分论坛币 热心指数 收起 理由
niuniuyiwan + 10 + 1 精彩帖子

总评分: 论坛币 + 10  热心指数 + 1   查看全部评分

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-22 05:21