全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
13787 16
2014-07-16
悬赏 20 个论坛币 已解决
如何批量将所有数值型变量转化成字符型?我写了下面程序,用array转化,还是不行,求解?
复制代码


日志文件:
QQ截图20140716110224.png

最佳答案

zhanglianbo35 查看完整内容

不需要用数组: proc contents data=a1 out=cont noprint; run; proc sql noprint; select compress(name||'='||'_'||name) into: renames separated by' ' from cont where type=1 ; select compress(name||'=strip(put(_'||name||", $12.));")into: tochar separated by' ' from cont where type=1 ; quit; %put "content: &tochar"; data a_new; set a1 (rename=(&renames.)); &tochar; drop _: ; ...
二维码

扫码加我 拉你入群

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

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

全部回复
2014-7-16 11:03:37
不需要用数组:
proc contents data=a1 out=cont noprint; run;

proc sql noprint;
select compress(name||'='||'_'||name) into: renames separated by' '
from cont
where type=1 ;

select compress(name||'=strip(put(_'||name||", $12.));")into: tochar separated by' '
from cont
where type=1 ;  
quit;

%put "content:  &tochar";

data a_new;
set a1 (rename=(&renames.));
&tochar;
drop _: ;
run;
二维码

扫码加我 拉你入群

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

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

2014-7-16 11:36:56
需要重新定义一个数组X 然后再做循环  而且是 X[I]=put(Y[i],12.)
二维码

扫码加我 拉你入群

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

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

2014-7-16 12:10:41
%let k=;/*insert number of numeric variables of your data set*/
data your_data(drop=i);
set your_data;
array num_all[*] _numeric_;
array char_all[*] $ char1 - char&k.;
do I=1 to DIM(num_all);
char_all[i]=put(num_all[i], $12.);
end;
run;
二维码

扫码加我 拉你入群

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

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

2014-7-16 12:11:56

%let k=;/*insert number of numeric variables of your data set*/
data your_data(drop=i);
set your_data;
array num_all[*] _numeric_;
array char_all[*] char1 - char&k.;
do I=1 to DIM(num_all);

char_all[i]=put(num_all[i],12.);

end;
run;
二维码

扫码加我 拉你入群

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

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

2014-7-16 13:05:45
z[i] = put(y[i], best.);  *z[i] is char;
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群