sas - 原始数据导入
问题描述
HCA_file.txt文件在标题行中包含每个Client_id、State、DoB的不同类型的信息,在交易行中包含在不同日期执行的不同购买。我需要通过保留client_id和State将数据导入 SAS,这样:
- 仅导入交易数据#
- 仅导入标头数据#
请根据问题帮我解决这个问题。
样本数据
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;
解决方案
SAS中变量命名规则:
- SAS 名称的长度取决于分配给它的元素。许多 SAS 名称可以是 32 个字符长;其他的最大长度为 8。
- 第一个字符必须是英文字母(A、B、C、...、Z)或下划线 (_)。后续字符可以是字母、数字(0、1、...、9)或下划线。
- 您可以使用大写或小写字母。
- SAS 名称中不能出现空格。
- 不允许使用除下划线以外的特殊字符。仅在 filerefs 中,您可以使用美元符号 ($)、井号 (#) 和 at 符号 (@)。
所以问题出在变量中Trans-Amt
,您应该将其重命名为Trans_Amt
.
更新:
分析数据很困难,但您可以解决程序中的一些问题:
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;
推荐阅读
- c# - 从 TFS 我需要代码通过使用 MVC Asp.net 将集合名称作为参数传递来从特定集合中检索项目名称
- git - 如何向现在公开的 github 私有存储库发出拉取请求
- javascript - 如何更改滚动条拇指的高度?
- c# - 数据库并发异常
- angular - 将输入字段限制为两位小数 - Angular 5
- javascript - 在函数中使用组件的上下文
- ajax - 模态产品页面上的 WooCommerce 结帐
- tensorflow.js - 来自 localStorage 的 Tensorflow.js tf.loadModel() 不起作用
- sql - A、B 和 C 之间的 SQL JOIN 混合全连接和左连接
- css - Font Awesome 5“实心”方形渲染而不是“常规”