原始数据导入

Jat*_*pta 1 sas

HCA_file.txt文件包含标题行中每个Client_id,State,DoB的不同类型的信息,以及在交易行中不同日期进行的不同购买。我需要通过保留client_idState将数据导入SAS,以便:

  1. 仅导入交易数据
  2. 仅导入头数据

请根据问题帮助我解决此问题。

样本数据

H 1096 CA 01SEP83
C 01JUL11 $156.7
H 1097 VG 07JUL74
C 01FEB11 $109.5
H 1099 OT 13FEB79
C 01Feb11 $109.5
Run Code Online (Sandbox Code Playgroud)

  filename HCA_File '/folders/myfolders/SAS Assignment/Assignment 8 files 
  Part-2/HCA_file.txt' ;

  Data HCA_File1;
  Infile HCA_File Truncover;
  Input Client  Client_Id State DOB @;
  If Client = 'H' then input;
  run;
Run Code Online (Sandbox Code Playgroud)

Ale*_*ida 6

SAS中的变量命名规则:

  • SAS名称的长度取决于为其分配的元素。许多SAS名称的长度可以为32个字符。其他的最大长度为8。
  • 第一个字符必须是英文字母(A,B,C,...,Z)或下划线(_)。后续字符可以是字母,数字(0、1,...,9)或下划线。
  • 您可以使用大写或小写字母。
  • SAS名称中不能出现空格。
  • 除下划线外,不允许使用特殊字符。仅在filerefs中,可以使用美元符号($),英镑符号(#)和符号(@)。

因此,问题出在变量中Trans-Amt,您应该在中将其重命名Trans_Amt

SAS变量名称规则。

更新:

很难分析数据,但可以解决程序中的一些问题:

  • output语句而不是if子句中的输入
  • 结束使用文件名时清除文件名(filename HCA_File clear;数据步骤之后)
  • 当您读取文件标记字符变量时,其长度类似于:$8.。有关输入语句的更多信息,您可以在这里阅读。

解:

filename HCA_File '/folders/myfolders/SAS Assignment/Assignment 8 files 
  Part-2/HCA_file.txt' ;

  Data HCA_File1;
     Infile HCA_File Truncover;
     Input Client $1. Client_Id State $10. DOB $10.;
     If Client = 'H' then output;
  run;

filename HCA_File clear;
Run Code Online (Sandbox Code Playgroud)