楼主: liyichen17
13959 16

[问答] 如何批量将所有数值型变量转化成字符型? [推广有奖]

11
gaotao0727 发表于 2014-7-18 09:17:04
总之,数据类型转换不可直接在原来变量上进行,要赋给一个新的变量在重新命名~~~

12
zhanglianbo35 发表于 2014-7-18 13:00:16
jingju11 发表于 2014-7-17 23:22
他原始哪个语句根本没有搞清format的定义和类型.
另外如果某些数据型变量名以_ 起始,也有问题把.
京剧
so, you have a better idea, do you ?

13
gaotao0727 发表于 2014-7-18 13:47:35
freerunning_sky 发表于 2014-7-16 13:28
字符的长度根据你的需要可进行调整。
你这样做,怎么知道现在的字符变量是原来的那个数值变量呢??

14
freerunning_sky 在职认证  发表于 2014-7-21 11:41:53
gaotao0727 发表于 2014-7-18 13:47
你这样做,怎么知道现在的字符变量是原来的那个数值变量呢??
  1. data your_data;
  2.         array num_all(*) num1-num10;
  3.         drop i j;
  4.         do i=1 to 10000;
  5.                 do j=1 to dim(num_all);
  6.                         num_all(j)=round(10000000*ranuni(i),0.01);
  7.                 end;
  8.                                 id=put(i,12.);
  9.                 output;
  10.         end;
  11. run;


  12. %macro changetype;
  13. data _null_;
  14.         set sashelp.vtable;
  15.         where libname="WORK" & memname="YOUR_DATA";
  16.         call symput("K",left(num_numeric));
  17. run;

  18. proc sql noprint;
  19.         select name into :name_list separated by " "
  20.         from sashelp.vcolumn
  21.         where libname='WORK' & memname='YOUR_DATA' & type='num';
  22. quit;

  23. data output_data;
  24.         set your_data;
  25.         array num_all[*] &name_list;
  26.         array char_all[*] $20. char1-char&k.;
  27.         do i=1 to dim(num_all);
  28.                 char_all[i]=compress(left(num_all(i)));
  29.         end;
  30.                 %do i=1 %to &K.;
  31.                         rename char&i.=%scan(&name_list,&i," ");
  32.                 %end;
  33.         drop i &name_list;
  34. run;
  35. %mend;
  36. %changetype;
复制代码

15
gaotao0727 发表于 2014-7-21 14:58:00
freerunning_sky 发表于 2014-7-21 11:41
赞一个~~~

16
bobguy 发表于 2014-7-28 03:54:00
The answer is wrong. In SAS a variable can never be defined as both num and char type.

17
bajie123 发表于 2014-8-16 09:55:40
nice programming

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

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