SAS编程面试题及详细答案(企业真实版)_第1页
SAS编程面试题及详细答案(企业真实版)_第2页
SAS编程面试题及详细答案(企业真实版)_第3页
SAS编程面试题及详细答案(企业真实版)_第4页
SAS编程面试题及详细答案(企业真实版)_第5页
已阅读5页,还剩1页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SAS编程面试题及详细答案(企业真实版)一、SAS基础语法高频面试题1、简述SAS程序的核心组成结构,DATA步和PROC步的区别?参考答案:SAS程序核心由DATA步、PROC步、全局语句三部分组成。DATA步核心作用是数据处理与数据集创建,主要用于读取原始数据、清洗数据、变量计算、数据筛选、合并拆分数据集,运行逻辑是逐行观测处理,一次生成SAS数据集,不会输出分析结果。PROC步核心作用是数据分析与结果输出,是SAS的过程步,专门用于统计分析、绘图、排序、汇总、导出数据,只能处理已经存在的SAS数据集,不支持自定义数据清洗逻辑,直接输出报表、统计结果、图形。简单总结:DATA步造数据、改数据;PROC步算数据、出结果。2、SAS中临时数据集和永久数据集的区别?如何永久保存数据集?参考答案:临时数据集默认存储在SAS临时逻辑库WORK中,程序关闭、SAS重启后数据会自动清空,无需手动指定路径,命名直接写数据集名即可,适用于临时数据处理、中间数据存储。永久数据集需要绑定自定义逻辑库,存储在电脑本地磁盘,SAS关闭后数据保留,可反复调用使用,适用于基础数据、最终成果数据保存。永久保存数据集操作:首先用LIBNAME语句定义逻辑库绑定本地路径,例如libnametest"D:\sas_data";,之后创建数据集时指定库名test.data1,该数据集即为永久数据集。3、SAS中变量类型有几种?缺失值分别如何表示?参考答案:SAS只有两种变量类型:数值型、字符型。数值型变量缺失值用小数点.表示,运算中缺失值参与计算结果仍为缺失值;字符型变量缺失值为空空格,不是小数点,字符缺失值无法直接和字符内容匹配。补充面试实操点:筛选数值缺失值用wherevar=.;,筛选字符缺失值用wherevar="";。二、数据清洗与数据处理面试题(核心必考)1、SAS中WHERE和IF的区别,面试高频场景区分参考答案:1、执行顺序不同:WHERE是数据集读取前筛选,直接过滤原始数据,读取多少处理多少,效率更高;IF是读取全部数据后,在DATA步逐行筛选,数据量大时效率低。2、适用场景不同:WHERE只能筛选原始数据集已有的变量,不能筛选DATA步中新生成的变量;IF可以筛选原有变量和程序中新计算的变量。3、特殊规则:WHERE不支持累加变量、临时变量筛选,IF完全支持;PROC步中只能用WHERE,不能用IF。实操口诀:读数据筛选用WHERE,算完变量筛选用IF,大数据量优先WHERE。2、如何去除数据重复?SAS两种去重方法及区别参考答案:方法一:PROCSORT去重(最常用)procsortdata=testnodupkey;by重复字段;run;nodupkey:根据BY字段完全去重,保留第一条观测,删除后续重复数据,是工作中主流用法。方法二:noduprecsprocsortdata=testnoduprecs;by全部字段;run;区别:nodupkey是按关键字段去重,部分字段重复即删除;noduprecs是整行数据完全一致才去重,仅去除完全重复的观测。3、SAS中如何实现数据集横向合并和纵向合并?核心参数区别参考答案:1、纵向合并(堆叠数据,上下拼接):直接用DATA步SET语句datanew;setdata1data2;run;规则:变量名一致则合并列,变量名不同则单独生成新列,缺失值自动填充。适用于相同结构多批次数据合并。2、横向合并(匹配拼接,左右关联):DATA步MERGE+BY语句datanew;mergedata1data2;byid;run;核心参数:IN=变量(面试重点)mergedata1(in=a)data2(in=b);a=1代表观测来自data1,b=1代表观测来自data2,可实现精准匹配:a=1andb=1:内连接,保留两边匹配数据a=1:左连接,保留左表全部数据b=1:右连接,保留右表全部数据三、SAS常用函数面试题1、常用字符函数、数值函数、日期函数有哪些?写出核心用法参考答案:1、字符处理函数strip():去除首尾全部空格;trim():仅去除尾部空格;left():去除首部空格;scan():截取指定位置字符串;substr():按位置截取字符;upcase()/lowcase():大小写转换。2、数值函数sum():求和(自动忽略缺失值,优于+运算);mean():均值;max()/min():最值;int():取整;abs():绝对值。3、日期函数(面试高频)input(字符日期,date9.):字符转SAS日期;put(SAS日期,yyyymmdd10.):日期转字符;year()/month()/day():提取年月日;intck():计算日期间隔。2、SAS中+号和SUM函数的核心区别?参考答案:这是面试超高频率错题,核心区别在缺失值处理:1、算术+运算:只要有一个变量为缺失值,计算结果直接为缺失值;2、SUM函数:自动忽略缺失值,只计算有效数值,全部缺失才返回缺失值。工作中变量累加、指标求和,统一优先使用SUM函数,避免数据缺失问题。四、SAS宏程序面试题(进阶必考)1、简述SAS宏的作用,宏变量和普通变量的区别?参考答案:SAS宏的核心作用是代码复用、参数化运行、批量处理数据,减少重复代码,实现程序自动化运行。区别:普通变量是数据集变量,存储在数据集观测中,只能在DATA步、PROC步使用;宏变量是全局文本变量,存储在宏内存中,无数据类型,默认字符格式,可在整个SAS程序任意位置调用,用&变量名调用。2、全局宏变量和局部宏变量的区别?如何定义?参考答案:全局宏变量:用%let直接定义,全程有效,整个程序所有步骤均可调用,SAS关闭前一直存在。局部宏变量:在%macro宏程序内部定义,仅在当前宏程序运行期间有效,宏运行结束后自动释放,外部无法调用。如需局部变量全局生效,可使用%global声明。3、简单写一个批量循环处理数据集的宏程序参考答案:sas

%macroloop_data(num);

%doi=1%to&num.;

datatest_&i.;

setraw_data;

wheremonth=&i.;

run;

%end;

%mend;

/*调用宏*/

%loop_data(12);功能:批量拆分1-12月数据,生成12个月度数据集,是职场最常用的循环宏模板。五、SAS统计与输出面试题1、PROCFREQ、PROCMEANS、PROCSQL的核心用途?参考答案:PROCFREQ:频次统计,用于分类变量,统计频数、占比、交叉表、卡方检验;PROCMEANS:描述性统计,用于数值变量,统计均值、标准差、最值、样本量,支持分组汇总;PROCSQL:结构化查询,可实现数据集查询、筛选、关联、去重、汇总,替代大部分DATA步和排序步骤,代码更简洁。2、SAS如何将结果导出为Excel、CSV文件?参考答案:1、导出CSV(速度快、无格式乱码)procexportdata=testoutfile="D:\test.csv"dbms=csvreplace;run;2、导出Excelprocexportdata=testoutfile="D:\test.xlsx"dbms=xlsxreplace;run;replace参数核心作用:覆盖已有文件,避免程序报错,工作中必须携带。六、报错排查与实操难题面试题1、SAS最常见报错:变量未初始化、缺失值报错、BY变量未排序,分别如何解决?参考答案:1、变量未初始化:多为拼写错误、变量不存在,核对变量名,或用length提前定义变量;2、运算缺失值过多:将+运算改为SUM函数,提前筛选、填充缺失值;3、BY变量未排序:MERGE、排序、分组前,必须用PROCSORT对BY字段排序,是横向合并最常见报错。2、大数据量SAS程序运行慢,优化方案有哪些?参考答案:1、优先用WHERE替代IF,提前过滤无效数据,减少读取量;2、数据集合并、分组前必须排序,避免重复运算;3、不使用的变量用DROP/KEEP剔除,减少内存占用;4、批量处理使用宏循环,减少重复代码运行;5、大数据避免多次读写数据集,尽量一次DATA步完成清洗。七、简答题综合面试题(终面常用)1、简述你日常SAS数据处理的完整工作流程参考答案:首先读取原始数据,查看数据结构、变量类型、缺失值、异常值;然后进行数据清洗,剔除重复、修正异常值、填充缺失值、修改变量格式;接着根据业务需求进行变量计算、数据筛选、数据集合并拆分;之后进行数据汇总、统计分析;最后校验数据准确性,导出报表、留存永久数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论