楼主: xulu111
853 5

[SAS EM] str 宏使用,, [推广有奖]

  • 0关注
  • 0粉丝

初中生

47%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
131 点
帖子
10
精华
0
在线时间
15 小时
注册时间
2023-2-1
最后登录
2023-3-27

楼主
xulu111 发表于 2023-2-1 22:22:06 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
每个数字所在的位置都不一样 怎么把每个字段里的数字部分提取出来呀
二维码

扫码加我 拉你入群

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

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

关键词:数据集 sas

微信图片_20230201222056.jpg (150.78 KB)

微信图片_20230201222056.jpg

dde81dc8fce39d0a7536874629c2aa3.png (103.02 KB)

dde81dc8fce39d0a7536874629c2aa3.png

沙发
乐天天12300 发表于 2023-2-2 12:59:08
  1. /*1*/
  2. data test;
  3.     if 0 then
  4.         do;
  5.             set sashelp.class;
  6.             output;
  7.         end;
  8. run;

  9. /*2*/
  10. data test;
  11.     set sashelp.class;
  12.     if 0;
  13. run;
复制代码

藤椅
xulu111 发表于 2023-2-2 14:51:23
乐天天12300 发表于 2023-2-2 12:59
是我没表达清楚,空数据集需要包括这三个变量的属性,应该是那种右击属性能看到label type等信息的形式,

板凳
whymath 发表于 2023-2-2 15:43:52
可以用宏,但并非只能用宏。
宏的本质是文本替换,一些材料中也将宏程序称为“用来写程序的程序”。在data步中,有 call execute() 子例程、dosubl() 函数可以做到类似的效果。
下例使用 call execute() 解决本题。
  1. data have;
  2.   input varname $ 1-10 varlabel $ 11-24 vartype $;
  3.   cards;
  4.   _PCSADT     PCSA Date  $10
  5.   _PCSACV  PCSA Version  $15
  6.    _PHASE         Phase    8
  7. ;
  8. run;

  9. data _null_;
  10.   set have end=eof;
  11.   if _n_=1 then call execute('data want;');
  12.   call execute('attrib '||trim(varname)||' label="'||trim(varlabel)||'" length='||trim(vartype)||';');
  13.   if eof then call execute('call missing(of _all_); stop; run;');
  14. run;
复制代码
执行程序,你将在日志窗口看到如下图所示信息。 1.png

上述代码在 data _null_ 数据步中进行组装并递交,在 data _null_ 数据步之后被编译和执行。
查看我的精华帖:免费的 SAS 软件

报纸
xulu111 发表于 2023-2-2 22:15:19
whymath 发表于 2023-2-2 15:43
可以用宏,但并非只能用宏。
宏的本质是文本替换,一些材料中也将宏程序称为“用来写程序的程序”。在data ...
感谢大神!又学到了新知识

地板
xulu111 发表于 2023-2-3 13:39:49
xulu111 发表于 2023-2-2 22:15
感谢大神!又学到了新知识
请问大神,可以教教孩子怎么用宏写吗,昨天研究半天也没成功

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-2-17 20:01