Sas 选择权而非转让权
我必须编写一个程序,在数据行之后读取数据;在代码部分。如您所见,我使用赋值来删除所提供数据中的“”、$和**。但是我必须在没有作业的情况下完成这个程序,这很麻烦。有没有关于如何更改它的想法,以便程序读取代码,但忽略“”、$和** 干杯Sas 选择权而非转让权,sas,Sas,我必须编写一个程序,在数据行之后读取数据;在代码部分。如您所见,我使用赋值来删除所提供数据中的“”、$和**。但是我必须在没有作业的情况下完成这个程序,这很麻烦。有没有关于如何更改它的想法,以便程序读取代码,但忽略“”、$和** 干杯 data PERSONELL; input @; if not index(_infile_,'****'); _infile_ = translate(_infile_,' ','$'); length ID $ 4; length DEPT
data PERSONELL;
input @;
if not index(_infile_,'****');
_infile_ = translate(_infile_,' ','$');
length ID $ 4;
length DEPT $ 1;
input ID $ @1 DEPT $ BIRTHDAY date10. +(-5) YEAR :8. Salary comma8./;
datalines;
A123 4Mar1989 8,6,00
***************
A037 23Jun1957 21,450
**************
M015 19Sep1977$17,500
***********
;
run;
如果可以假设每个值都存在(缺少的值用句点表示),则使用
infle
语句上的dlm=
选项告诉SAS将$
和*
视为空格
data PERSONELL;
length id $4 dept $1 birthday 8 year 8 salary 8;
infile datalines dlm=' $*';
informat birthday date. salary comma.;
input id birthday salary ;
year=year(birthday);
dept=id;
format birthday date9.;
datalines;
A123 4Mar1989 8,6,00
***************
A037 23Jun1957 21,450
**************
M015 19Sep1977$17,500
***********
;
结果
Obs id dept birthday year salary
1 A123 A 04MAR1989 1989 8600
2 A037 A 23JUN1957 1957 21450
3 M015 M 19SEP1977 1977 17500
如果可以假设每个值都存在(缺少的值用句点表示),则使用
infle
语句上的dlm=
选项告诉SAS将$
和*
视为空格
data PERSONELL;
length id $4 dept $1 birthday 8 year 8 salary 8;
infile datalines dlm=' $*';
informat birthday date. salary comma.;
input id birthday salary ;
year=year(birthday);
dept=id;
format birthday date9.;
datalines;
A123 4Mar1989 8,6,00
***************
A037 23Jun1957 21,450
**************
M015 19Sep1977$17,500
***********
;
结果
Obs id dept birthday year salary
1 A123 A 04MAR1989 1989 8600
2 A037 A 23JUN1957 1957 21450
3 M015 M 19SEP1977 1977 17500
这是作业还是试题?为什么你不能用作业?这是作业还是试题?为什么你不能使用作业?