楼主: dxystata
2216 2

[有偿编程] 如何自动实现删除数据集的最后一行的空行 [推广有奖]

版主

大师

34%

还不是VIP/贵宾

-

TA的文库  其他...

Software

中英文Ebook

R学习

威望
2
论坛币
182304 个
通用积分
15205.6031
学术水平
208 点
热心指数
271 点
信用等级
174 点
经验
291157 点
帖子
5375
精华
1
在线时间
13478 小时
注册时间
2006-6-21
最后登录
2024-4-26

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

15论坛币
如何自动实现删除数据集的最后一行的空行,也可能变量有多个,只有希望程序能通用,谢谢! aaa.rar (678 Bytes) 本附件包括:
  • aaa.sas7bdat


aaa.rar

682 Bytes

本附件包括:

  • aaa.sas7bdat

关键词:自动实现 数据集
沙发
孤单的我们 发表于 2019-4-17 15:31:18 |只看作者 |坛友微信交流群
  1. data want;
  2.         set aaa;
  3.         array temp _all_;
  4.         null=0;
  5.         do over temp;
  6.                 if missing(temp) then null+1;
  7.         end;
  8.         if null=dim(temp) then delete;
  9.         drop null;
  10. run;
复制代码

使用道具

藤椅
Cecilia_Xi 在职认证  发表于 2020-3-1 18:33:17 |只看作者 |坛友微信交流群
  1. 因为楼主希望可以多变量时(情形之一为含数值型及字符型的数据集)仍然通用。此方法借用了sashelp中的Vcolumn数据集(含sas中各数据集的相关信息)。不知道为什么生成data test这步的code格式一直有问题,大家可以自己稍微调一下。或者用自己的测试数据,直接将memname='TEST' 中的TEST改为要用的数据集名,libname='WORK' 中的WORK改为数据集所在的逻辑库名,再将最后一步的数据集名称也改一下就可以。
复制代码
  1. data test;   
  2.   length year 8 city $9. country $8.;   
  3.   input year city country;
  4.   datalines;
  5.   2016 Barcelona Spain
  6.   2018 Frankfurt Germany
  7.   2019 Beijing   China
  8.   .    .        .   
  9. ;
  10. run;

  11. proc sql;
  12.       select 'missing('||compress(name)||')'||' and'
  13.              into:condition separated by ' '
  14.           from SASHELP.Vcolumn
  15.           where memname='TEST' and libname='WORK';/*大写*/
  16. quit;

  17. %put &condition;

  18. %let condition1=%qsubstr(&condition,1,%length(&condition)-3);

  19. data test1;
  20.       set test;
  21.           if &condition1 then delete;
  22. run;
复制代码

使用道具

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

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

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

GMT+8, 2024-4-27 12:42