纠正一下之前的错误
之前在excel中变换变量名的时候substitute(... , "88", "8")可能会将变量名后面那个"88"变成"8",这样做会导致错误。(原帖已做修改)
所以在变换变量名的时候应为:
- =SUBSTITUTE(SUBSTITUTE(A2,".","_"),"884","_84")
复制代码刚谷歌了一下,有篇文章讲的很好,利用SAS内部编程:
http://www.lexjansen.com/nesug/nesug09/cc/CC08.pdf
这里利用他的方法,利用SAS对其进行加标签:
首先变量名变换肯定少不了。根据修改后的方法,新建一个excel文档,变换后如图:
将csv文件的第二行删除,
在SAS中键入语句:(文件都放在桌面上)
- proc import out= titanic datafile= "C:\Users\Administrator\Desktop\data11.csv"
- dbms=csv;
- getnames=yes;
- run;
- proc import datafile = 'C:\Users\Administrator\Desktop\label.xls'
- dbms = excel
- out = labels replace;
- getnames = yes;
- run;
- filename gencode 'C:\Users\Administrator\Desktop\gencode.sas';
- data _null_;
- set labels end = eof;
- file gencode;
- if _n_ = 1 then do;
- put "proc datasets lib = work nolist;" /
- "modify Titanic;";
- end;
- if indexc(label,"'")=0 then
- put " label " variable " = '" label "';";
- else if indexc(label,'"')=0 then
- put " label " variable ' = "' label '";';
- if eof then put "quit;";
- run;
- %include gencode;
- filename gencode clear;
复制代码这样做也可以成功实现。