本帖最后由 花映碧水 于 2013-12-29 13:29 编辑
\) y' T6 S( A* W9 M5 h* U6 K# l# q* B+ }
在此首先非常感谢会员“奚鑫”提供资源,为方便大家观看,特此将全文转载到数学中国方便大家直接查阅~
% ~- i# k, L5 S2 ~
! I5 R! U2 ~1 w6 V6 [$ t除了EXCEL文件之外,我们在数据分析中还会经常接触到各种各样格式的数据源,比如,分隔符分割的文本数据,定长的文本数据。对于不同格式的数据通常采用不同的方式进行读取,因此,我们首先要明确将要读取的数据是什么样子的,这需要与数据的提供方进行确认。 需要与数据提供方确认的内容: 1.文件的类型,是文本文件还是其他文件; 2.字段分隔的方式,是以分隔符分隔的还是定长的; 3.字段的格式,是字符型、数值型还是时间日期型。 只有明确了数据是什么样子的,我们才能够编写代码导入相应的数据,明确需求是开始工作之前必须要做的事情。 这次只和大家分享如何读取最简单的数据类型——空格分隔的文本数据。 经过确认,需求如下: 在D盘的根目录下存放了名为myfile.txt的文本文件,该数据是由四个字段组成,分别是IdNumber,Name,Team,Weight,其中Weight为数值型变量,其余都为字符型变量,各个字段间以空格分隔。 需要把该文件的内容导入到名为club的数据集中。 文件的内容如下: 1023 David red 189 1049 Amelia yellow 1455 R0 @/ k j' F5 V; u1 R* O0 V
编写如下代码完成上面需求: data work.club; infile "D:\myfile.txt";
6 {$ b; B8 Q B7 N3 S input IdNumber $ Name $Team $ Weight;' u! U, B# T L. z
run; 代码说明: 上面的代码为SAS的数据步。 data:关键字,用于说明数据步的开始; work.club:生成要保存的数据集名称; infile:infile语句,后面接的是文本文件的路径和名称; input:后面接的是要导入字段的名称和格式,其中字段名后接符号$代表该字段为字符型,不做说明为数值型; run:提交上面的语句。 补充说明: SAS里面包含了数据步和过程步,关于什么是数据步和过程步以后会说明。 infile语句对应input语句。可以理解成从infile(输入文件)里input(读取)数据。 ) E9 m) @" |7 A0 T# J
( y; C. ], z( u9 ]8 M' |, q |