本帖最后由 花映碧水 于 2013-12-29 13:29 编辑
, M9 c( @% E: I3 Y5 i, b4 F! v! ^& X8 ~8 N# [, e9 p: S, P7 W, d
在此首先非常感谢会员“奚鑫”提供资源,为方便大家观看,特此将全文转载到数学中国方便大家直接查阅~& g& ?1 D2 J& x) K
- E/ y; g4 W! n' H; J
除了EXCEL文件之外,我们在数据分析中还会经常接触到各种各样格式的数据源,比如,分隔符分割的文本数据,定长的文本数据。对于不同格式的数据通常采用不同的方式进行读取,因此,我们首先要明确将要读取的数据是什么样子的,这需要与数据的提供方进行确认。 需要与数据提供方确认的内容: 1.文件的类型,是文本文件还是其他文件; 2.字段分隔的方式,是以分隔符分隔的还是定长的; 3.字段的格式,是字符型、数值型还是时间日期型。 只有明确了数据是什么样子的,我们才能够编写代码导入相应的数据,明确需求是开始工作之前必须要做的事情。 这次只和大家分享如何读取最简单的数据类型——空格分隔的文本数据。 经过确认,需求如下: 在D盘的根目录下存放了名为myfile.txt的文本文件,该数据是由四个字段组成,分别是IdNumber,Name,Team,Weight,其中Weight为数值型变量,其余都为字符型变量,各个字段间以空格分隔。 需要把该文件的内容导入到名为club的数据集中。 文件的内容如下: 1023 David red 189 1049 Amelia yellow 145
K7 a# Z( \" U" w1 D$ ]/ c8 K, D编写如下代码完成上面需求: data work.club; infile "D:\myfile.txt";
& i' ^! J! T; I2 V+ i input IdNumber $ Name $Team $ Weight;# J5 `1 y" x0 s" E- C6 I! S/ C
run; 代码说明: 上面的代码为SAS的数据步。 data:关键字,用于说明数据步的开始; work.club:生成要保存的数据集名称; infile:infile语句,后面接的是文本文件的路径和名称; input:后面接的是要导入字段的名称和格式,其中字段名后接符号$代表该字段为字符型,不做说明为数值型; run:提交上面的语句。 补充说明: SAS里面包含了数据步和过程步,关于什么是数据步和过程步以后会说明。 infile语句对应input语句。可以理解成从infile(输入文件)里input(读取)数据。
& n9 C2 J4 ]* s( f6 C: m) b7 u- _: F6 ]" \9 {+ k
|