京公网安备 11010802034615号
经营许可证编号:京B2-20210330
深入理解SAS之批量数据导入
当我们在处理『大量的数据』(我偏不说大数据)的时候,如果一个文件一个文件的读入未免太不优雅。然而,如果我们操作的工具仅限于SAS,那无疑是『戴着镣铐跳舞』。SAS的循环那可不是像R那挥之即来的_for-loop_那么简单。
下面,我们就来演示一番如何优雅地舞动SAS这件,实现批量数据载入。
1.准备一份文件名数据集
读取某个文件夹下的文件名,这在R中再简单不过了。直接一个dir()函数搞定。
当然,我们要做的还要稍微复杂一些。我们需要读取原文件名in_name,并提供相应的SAS数据集文件名out_name。然而,我们傲娇的SAS在文件名命名的时候,不像R那么随心所欲。它有着这样那样的规矩。如:文件名不能超过32个字符;文件名内不能含小数点.。很不幸的是,博主要处理的数据恰好含有小数点.。所以,输出文件名不能直接使用原文件名。于是,前面整理的正则表达式知识终于可以派上用场了。
废话不多说,直接上代码。
当然,如果你说一定要用SAS全程搞定,那也不是不可能。这里提供一行SAS暗黑代码。
X "dir F:\Morgage\raw_data\lars__final_year_dat\*.dat/b >F:\Morgage\raw_data\lars__final_year_dat\filename" ;
通过X命令,执行命令提示符语句。首先,通过dir命令切换到F:\Morgage\raw_data\lars__final_year_dat\*.dat;接着,通过管道操作符>把同类型的.dat格式文件的文件名输出到文件夹F:\Morgage\raw_data\lars__final_year_dat\下的filename文件中。
有没有一种Linux命令行的既视感?
2.写一个读入数据的宏
%macro readfile_dat(v_dir,in_name,out_name);
/*?????????????v_dir,???????in_name,????SAS???????out_name*/
%let dir = &v_dir;
%let gsm= &in_name;
%let filename = "&dir&gsm";
libname Mor_dat 'F:\Morgage\sas_data\dat';
data Mor_dat.&out_name;
infile &filename;
input variable ; /*此处省略一万个变量的输入格式*/
run;
%mend readfile_dat;
3.利用数据步实现循环读取数据集
这一步是一个技巧活。这里,读入第一步中创建的数据集,并将每一行得到的变量值作为参数传给第二步中读取我们所需要处理的数据集的宏。
data _null_;
length in_name $ 19 out_name $ 15;
infile "F:\Morgage\raw_data\DAT_FileNameList.csv" dsd delimiter=' ';
input in_name $ out_name $ ;
call execute(compress('%readfile_dat(F:\Morgage\raw_data\lars__final_year_dat\,'||in_name||','||out_name||')'));
run;
最后,可以用proc print过程检查一下读取是否正确。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在使用Excel透视表进行数据汇总分析时,我们常遇到“需通过两个字段相乘得到关键指标”的场景——比如“单价×数量=金额”“销量 ...
2025-11-14在测试环境搭建、数据验证等场景中,经常需要将UAT(用户验收测试)环境的表数据同步到SIT(系统集成测试)环境,且两者表结构完 ...
2025-11-14在数据驱动的企业中,常有这样的困境:分析师提交的“万字数据报告”被束之高阁,而一张简洁的“复购率趋势图+核心策略标注”却 ...
2025-11-14在实证研究中,层次回归分析是探究“不同变量组对因变量的增量解释力”的核心方法——通过分步骤引入自变量(如先引入人口统计学 ...
2025-11-13在实时数据分析、实时业务监控等场景中,“数据新鲜度”直接决定业务价值——当电商平台需要实时统计秒杀订单量、金融系统需要实 ...
2025-11-13在数据量爆炸式增长的今天,企业对数据分析的需求已从“有没有”升级为“好不好”——不少团队陷入“数据堆砌却无洞察”“分析结 ...
2025-11-13在主成分分析(PCA)、因子分析等降维方法中,“成分得分系数矩阵” 与 “载荷矩阵” 是两个高频出现但极易混淆的核心矩阵 —— ...
2025-11-12大数据早已不是单纯的技术概念,而是渗透各行业的核心生产力。但同样是拥抱大数据,零售企业的推荐系统、制造企业的设备维护、金 ...
2025-11-12在数据驱动的时代,“数据分析” 已成为企业决策的核心支撑,但很多人对其认知仍停留在 “用 Excel 做报表”“写 SQL 查数据” ...
2025-11-12金融统计不是单纯的 “数据计算”,而是贯穿金融业务全流程的 “风险量化工具”—— 从信贷审批中的客户风险评估,到投资组合的 ...
2025-11-11这个问题很有实战价值,mtcars 数据集是多元线性回归的经典案例,通过它能清晰展现 “多变量影响分析” 的核心逻辑。核心结论是 ...
2025-11-11在数据驱动成为企业核心竞争力的今天,“不知道要什么数据”“分析结果用不上” 是企业的普遍困境 —— 业务部门说 “要提升销量 ...
2025-11-11在大模型(如 Transformer、CNN、多层感知机)的结构设计中,“每层神经元个数” 是决定模型性能与效率的关键参数 —— 个数过少 ...
2025-11-10形成购买决策的四个核心推动力的是:内在需求驱动、产品价值感知、社会环境影响、场景便捷性—— 它们从 “为什么买”“值得买吗 ...
2025-11-10在数字经济时代,“数字化转型” 已从企业的 “可选动作” 变为 “生存必需”。然而,多数企业的转型仍停留在 “上线系统、收集 ...
2025-11-10在数据分析与建模中,“显性特征”(如用户年龄、订单金额、商品类别)是直接可获取的基础数据,但真正驱动业务突破的往往是 “ ...
2025-11-07在大模型(LLM)商业化落地过程中,“结果稳定性” 是比 “单次输出质量” 更关键的指标 —— 对客服对话而言,相同问题需给出一 ...
2025-11-07在数据驱动与合规监管双重压力下,企业数据安全已从 “技术防护” 升级为 “战略刚需”—— 既要应对《个人信息保护法》《数据安 ...
2025-11-07在机器学习领域,“分类模型” 是解决 “类别预测” 问题的核心工具 —— 从 “垃圾邮件识别(是 / 否)” 到 “疾病诊断(良性 ...
2025-11-06在数据分析中,面对 “性别与购物偏好”“年龄段与消费频次”“职业与 APP 使用习惯” 这类成对的分类变量,我们常常需要回答: ...
2025-11-06