本帖最后由 花映碧水 于 2013-12-29 13:29 编辑
: Q7 U) r: R" Z8 s. i
+ E1 {, ?& b! h; w/ M在此首先非常感谢会员“奚鑫”提供资源,为方便大家观看,特此将全文转载到数学中国方便大家直接查阅~
6 P6 g/ D6 y: R$ ^6 }3 R# m5 x2 A- i6 A2 S( c: _5 k# I
除了EXCEL文件之外,我们在数据分析中还会经常接触到各种各样格式的数据源,比如,分隔符分割的文本数据,定长的文本数据。对于不同格式的数据通常采用不同的方式进行读取,因此,我们首先要明确将要读取的数据是什么样子的,这需要与数据的提供方进行确认。 需要与数据提供方确认的内容: 1.文件的类型,是文本文件还是其他文件; 2.字段分隔的方式,是以分隔符分隔的还是定长的; 3.字段的格式,是字符型、数值型还是时间日期型。 只有明确了数据是什么样子的,我们才能够编写代码导入相应的数据,明确需求是开始工作之前必须要做的事情。 这次只和大家分享如何读取最简单的数据类型——空格分隔的文本数据。 经过确认,需求如下: 在D盘的根目录下存放了名为myfile.txt的文本文件,该数据是由四个字段组成,分别是IdNumber,Name,Team,Weight,其中Weight为数值型变量,其余都为字符型变量,各个字段间以空格分隔。 需要把该文件的内容导入到名为club的数据集中。 文件的内容如下: 1023 David red 189 1049 Amelia yellow 145
, O4 U' a* l# h5 i7 O- _编写如下代码完成上面需求: data work.club; infile "D:\myfile.txt";+ U0 h* _. X7 b# v( H
input IdNumber $ Name $Team $ Weight;
) D; Q! u& |4 D9 q& krun; 代码说明: 上面的代码为SAS的数据步。 data:关键字,用于说明数据步的开始; work.club:生成要保存的数据集名称; infile:infile语句,后面接的是文本文件的路径和名称; input:后面接的是要导入字段的名称和格式,其中字段名后接符号$代表该字段为字符型,不做说明为数值型; run:提交上面的语句。 补充说明: SAS里面包含了数据步和过程步,关于什么是数据步和过程步以后会说明。 infile语句对应input语句。可以理解成从infile(输入文件)里input(读取)数据。 . g8 {2 P5 ]3 ?# f7 R
3 d$ U2 w4 B, J- U$ W8 s |