楼主: crazygoing
20552 35

[原创博文] 批量删除数据集 [推广有奖]

31
wangkaida198991 发表于 2014-3-12 18:03:26
crazygoing 发表于 2014-3-12 14:35
data a; set a;
n=_N_;
if mod(n/4) ne 0;
谢谢了,本人新手,_N_是什么意思啊?
一起加油

32
crazygoing 发表于 2014-3-13 13:06:08
wangkaida198991 发表于 2014-3-12 18:03
谢谢了,本人新手,_N_是什么意思啊?
看错你的回复了,是删除列。 那就需要转置一下数据集来做。
如下,假设a是你的数据集,  最后生成的a1是你需要的数据集。
  1. data a ;
  2. input a b c d e f g h j;
  3. cards;
  4. 1        11        22        33        44        55        66        77        88
  5. 1        11        22        33        44        55        66        77        88
  6. 1        11        22        33        44        55        66        77        88
  7. 1        11        22        33        44        55        66        77        88
  8. ;
  9. run;
  10. proc transpose data=a out=b;
  11. run;
  12. data b; set b;
  13. n=_N_;
  14. if mod(n,4) ne 0;
  15. drop n;
  16. run;
  17. proc transpose data=b out=a1;
  18. run;
  19. data a1;set a1;drop _name_;run;
复制代码

33
crazygoing 发表于 2014-3-13 13:07:11
yueCynthia 发表于 2014-3-12 17:22
诶?这个不是针对行么?
嗯,是我看错了。  那就把数据集转置一下 再删,然后再转置回来

34
yueCynthia 发表于 2014-3-13 16:34:11
crazygoing 发表于 2014-3-13 13:07
嗯,是我看错了。  那就把数据集转置一下 再删,然后再转置回来
大大~还有个问题~
如果32楼的数据a-j里面有一些是字符型变量的话,转置后就丢失啦是不是..

35
crazygoing 发表于 2014-3-13 22:00:13
yueCynthia 发表于 2014-3-13 16:34
大大~还有个问题~
如果32楼的数据a-j里面有一些是字符型变量的话,转置后就丢失啦是不是..
恩,可以这样改
  1. data a ;
  2. input a $ b c d e f g h j;
  3. cards;
  4. 在        11        22        33        44        55        66        77        88
  5. 在        11        22        33        44        55        66        77        88
  6. 在        11        22        33        44        55        66        77        88
  7. 在        11        22        33        44        55        66        77        88
  8. ;
  9. run;
  10. proc transpose data=a out=b;
  11. var _all_; *加上这条,就都可以转了;
  12. run;
  13. data b; set b;
  14. n=_N_;
  15. if mod(n,4) ne 0;
  16. drop n;
  17. run;
  18. proc transpose data=b out=a1 ;
  19. id _name_;
  20. var col1-col4; *这个地方要看一下有多少列,除掉变量名所在的列,其他列进行转置;
  21. run;
  22. data a1;set a1;drop _name_;run;
复制代码

36
eric_darcy 发表于 2014-3-13 22:59:43
kill all~

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 17:31