SAS中数据的导入(1)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAS中数据的导入(1)相关的知识,希望对你有一定的参考价值。

参考技术A

[TOC]

SAS中数据导入可以有四种类别

建立SAS数据集的的5种方法

以导入CSV文件为例

若文件为原始文件(例如文本文件),SAS也可以很方便的读取。

这种数据类型在第三小节提到了,也就是原始数据文件中的所有值之间都至少有一个空格分隔,合适的方法是使用列表输入(自由格式输入)。

列表输入的局限性。必须读取全部数据,不能跳过不需要的值;任何缺失都必须用句点标识;字符型数据长度默认不能超过8个字符且不能有内嵌空格;不太适合读取日期格式数据。

数据的值或者缺失值的句点之间没有空格(或者其他分隔符),则无法使用列表输入来读取数据。但是,如果每个变量值都能在数据行的相同位置找到,就可以用列输入来读取。这些数据应是标准数值数据(数字、小数点、正负号、科学计数法),带有内嵌逗号(100,000)和日期格式的数值不是标准数值类型。

列输入对比列表输入的优势:值之间无须空格;缺失值可以留空;字符型数据可以内嵌空格;可以跳过不需要的变量。

在第4节中提到,用列表或列输入时非标准字符不能正确识别,如日期,内嵌逗号的数字等。

输入格式的三种基本类型:字符、数值和日期。

注 意 :

参考文献
The little SAS Book, Fifth Edition.

SAS 的导入导出 excel 表格的实现

首先 SAS 可以使用手动来导入,导出

但是这样对于每次操作都需要来手动操作,所以就使用了 SAS 中的宏来编写代码

需求:

1. 首先是给定excel 的文件路径,来生成一个数据集

2. 然后是对数据集中进行数据的处理

3. 最后是对处理好的数据集导出为一个excel 格式的文件

例子:

 1 /* 导入excel的数据 */
 2 %macro import_excel(filepath, out);
 3     proc import datafile=&filepath out=&out dbms=excel replace;
 4     run;
 5 %mend import-excel;
 6 
 7 /* 导出excel的数据 */
 8 %macro export_excel(dataset, filepath);
 9     proc export data=&dataset file=&filepath dbms=excel replace;
10     run;
11 %mend export_excel();
12 
13 /* 调用导入宏 */
14 %import_excel(C:\\Users\\ZEK\\Desktop\\test.xlsx, a);
15 run;
16 
17 /* 处理数据集 */
18 data process;
19     set a;
20     if age>14 then desc=已满14岁;
21     else desc=未满14岁;
22 run;
23 
24 /* 调用导出宏 */
25 %export_excel(process, C:\\Users\\ZEK\\Desktop\\temp.xlsx);
26 run;

结果:

在日志窗口中会输出这样的一个日志.

技术图片

注意:

在编写代码的时候,最需要注意的是,导入和导出的语句是不一样的

导入为:

proc import datafile=路径名称 out=数据集名称 dbms=excel replace;

导出为:

proc export data=数据集名称 file=路径名称 dbms=excel replace;

千万要注意!!!!!!!!!!!!!!!!!!!!!!!

以上是关于SAS中数据的导入(1)的主要内容,如果未能解决你的问题,请参考以下文章

第二章 导入数据到SAS | 逻辑库和SAS数据集

SAS 的导入导出 excel 表格的实现

sas导入外部数据文件

第二章 导入数据到SAS | 格式规范数据读取

急求!!!我用SAS导入数据的时候 老是出现文件不存在的错误 这是为啥呢?

将数据从excel导入SAS