原始数据导入

时间:2019-09-05 13:14:00

标签: sas

HCA_file.txt 文件包含标题行中每个 Client_id,State,DoB 的不同类型的信息,以及在交易行中不同日期进行的不同购买。我需要通过保留 client_id State 这样的方式将数据导入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

代码

  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;

1 个答案:

答案 0 :(得分:6)

在SAS中命名变量的一些规则:

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

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

Rules for SAS Variable Names.

更新:

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

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

解决方案:

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;
相关问题