本帖最后由 花映碧水 于 2013-12-29 13:29 编辑 $ C+ [; u9 j3 f S
5 @$ E6 P' B! K9 C* g) C7 ?在此首先非常感谢会员“奚鑫”提供资源,为方便大家观看,特此将全文转载到数学中国方便大家直接查阅~( l) Z" v6 a! A9 s% s
& k. E, G3 h; B! ]除了EXCEL文件之外,我们在数据分析中还会经常接触到各种各样格式的数据源,比如,分隔符分割的文本数据,定长的文本数据。对于不同格式的数据通常采用不同的方式进行读取,因此,我们首先要明确将要读取的数据是什么样子的,这需要与数据的提供方进行确认。 需要与数据提供方确认的内容: 1.文件的类型,是文本文件还是其他文件; 2.字段分隔的方式,是以分隔符分隔的还是定长的; 3.字段的格式,是字符型、数值型还是时间日期型。 只有明确了数据是什么样子的,我们才能够编写代码导入相应的数据,明确需求是开始工作之前必须要做的事情。 这次只和大家分享如何读取最简单的数据类型——空格分隔的文本数据。 经过确认,需求如下: 在D盘的根目录下存放了名为myfile.txt的文本文件,该数据是由四个字段组成,分别是IdNumber,Name,Team,Weight,其中Weight为数值型变量,其余都为字符型变量,各个字段间以空格分隔。 需要把该文件的内容导入到名为club的数据集中。 文件的内容如下: 1023 David red 189 1049 Amelia yellow 145 u, r. I- X4 ~; w6 E% ? G
编写如下代码完成上面需求: data work.club; infile "D:\myfile.txt";
. h; u) [; V& r. I! m7 `: b" P input IdNumber $ Name $Team $ Weight;; r: G5 |5 J' G* T3 S3 g
run; 代码说明: 上面的代码为SAS的数据步。 data:关键字,用于说明数据步的开始; work.club:生成要保存的数据集名称; infile:infile语句,后面接的是文本文件的路径和名称; input:后面接的是要导入字段的名称和格式,其中字段名后接符号$代表该字段为字符型,不做说明为数值型; run:提交上面的语句。 补充说明: SAS里面包含了数据步和过程步,关于什么是数据步和过程步以后会说明。 infile语句对应input语句。可以理解成从infile(输入文件)里input(读取)数据。 . h/ o- Y6 S( S6 B4 H& f
1 c) V. o, n" o4 }
|