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

这是作业还是试题?为什么你不能用作业?这是作业还是试题?为什么你不能使用作业?