楼主: whymath
2540 2

[程序分享] 开源宏库计划_03:%file_textprocess [推广有奖]

  • 1关注
  • 16粉丝

实习版主

副教授

12%

还不是VIP/贵宾

-

威望
0
论坛币
5649 个
通用积分
747.7414
学术水平
121 点
热心指数
140 点
信用等级
83 点
经验
21768 点
帖子
556
精华
2
在线时间
566 小时
注册时间
2018-5-31
最后登录
2024-5-6

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
名称: %file_textprocess
简介: 像处理数据集一样处理文件内容
用法示例:*衍生一个测试用的临时文件;
  1. %let dummy=D:;
  2. data _null_;
  3.   file "&dummy.\in.sas";
  4.   set sashelp.class;
  5.   put name @13 sex @17 age @21 height @27 weight;
复制代码
结果如下:
1.png

*示例1: 在 in.sas 文件的末尾增加一条观测;
  1. %file_textprocess(filein=&dummy.\in.sas,optin=%str(truncover end=eof),process=%str(
  2.   output;
  3.   if eof then do;
  4.     data="whymath";
  5.     output;
  6.   end;
  7.   ));
复制代码
结果如下:
2.png

*示例2: 删除 in.sas 文件的最后一条观测;
  1. %file_textprocess(filein=&dummy.\in.sas,optin=%str(truncover end=eof),process=%str(
  2.   if eof then delete;
  3. ));
复制代码
结果如下:
3.png

*示例3: 查询 in.sas 文件所有包含单词"M"的观测, 并输出到 out.sas 文件中;
  1. %file_textprocess(filein=&dummy.\in.sas,fileout=&dummy.\out.sas,process=%str(
  2.   if findw(data,'M') then output;
  3. ));
复制代码
结果如下:
4.png

*示例4: 修订 out.sas 文件, 将修订后的结果打印到结果窗口, 最后将文件的编码由 utf-8 变更为 euc-cn;
  1. %file_textprocess(filein=&dummy.\out.sas,optin=%str(truncover encoding='utf-8'),optout=%str(encoding='euc-cn'),process=%str(
  2.     data=cats('第',_n_,'行:',data);
  3.     proc print;
  4.     run;
  5.   ));
复制代码
结果如下:
5.png

说明: 变量 data 指向了输入缓存区的内容, 您需要在 process= 参数中使用 data, 而不再是 _infile_.
参考: SAS帮助文档
源代码: file_textprocess.zip (1.34 KB) 本附件包括:
  • file_textprocess.sas



二维码

扫码加我 拉你入群

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

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

关键词:Process Text file ROCE CES 开源 SAS

SASUSER
沙发
whymath 发表于 2022-11-3 21:58:10 |只看作者 |坛友微信交流群
生成测试用临时文件的程序缺少了最后的 run; 语句。
示例1和示例4的代码缩进不够好。
论坛的代码编辑功能差强人意,我补了几次也是这样。请大家看的时候注意这些地方。

使用道具

藤椅
fxf258 发表于 2022-11-4 08:05:14 |只看作者 |坛友微信交流群
感谢分享!
跟着楼主学习!

使用道具

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

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-8 23:10