本文将从基础使用到高级操作,从多个方面详细阐述SAS输入数据的使用方法,此篇文章适合于已经有一定基础的用户学习使用。
一、数据读取
数据读取是SAS输入数据的一项基本功能,SAS支持多种文件格式的读取,包括CSV、Excel、文本、SAS数据集等等。
1. CSV文件读取
/*指定文件路径和文件名*/ filename mycsv '/myfolder/myfile.csv'; /*定义文件格式*/ proc import datafile=mycsv out=mycsv dbms=csv replace; getnames=yes; /*文件中第一行为列名*/ run;
2. Excel文件读取
/*指定文件路径和文件名*/ filename myexcel '/myfolder/myfile.xlsx'; /*定义文件格式*/ proc import datafile=myexcel out=mydata dbms=xlsx replace; sheet='Sheet1'; /*指定读取的sheet*/ getnames=yes; /*文件中第一行为列名*/ run;
二、数据合并
SAS提供了多种数据合并方式,包括按列合并、按行合并、SQL合并等等,以下为几个示例:
1. 按列合并
/*通过merge语句,按照指定列合并两个数据集*/ data merged; merge dataset1(in=a) dataset2(in=b); by id; if a and b; run;
2. 按行合并
/*通过set语句,将两个数据集按行合并*/ data merged; set dataset1 dataset2; run;
三、数据清洗
数据清洗是数据分析的一项重要步骤,SAS提供了多种清洗数据的函数和操作。
1. 缺失值处理
利用该函数可以处理缺失数据,如填补或删除缺失数据等。
/*去除含有缺失数据的记录*/ data nonmiss; set dataset; if missing(age) or missing(gender) or missing(income); run;
2. 数据重编码
数据重编码是将某一变量的取值进行排列。SAS通过多种操作实现数据重编码。
/*通过map语句,进行数据重编码*/ data gender_code; set dataset; if gender='Male' then gender_code=1; if gender='Female' then gender_code=2; run;
四、数据转换
数据转换是将原数据进行加工汇总,转换成更好的数据透视,类似于Excel中的数据透视表。
1. proc transpose
该函数是将数据透视,即将以列形式保存的数据转换为以行形式保存的数据。
/*通过proc transpose,实现数据透视*/ proc transpose data=dataset out=dataset_t name=age_group; var income; by gender; run;
2. proc means
该函数是产生数据总结结果,如平均值、最大值、最小值、中位数等。
/*通过proc means,得到数据的总结结果*/ proc means data=dataset; var income; class gender; run;
通过以上示例,我们详细介绍了SAS输入数据的基本使用,包括数据读取、数据合并、数据清洗以及数据转换。以上示例对SAS用户进行编程时,将具有很好的参考意义。