本帖最后由 花映碧水 于 2013-12-29 13:29 编辑 % A9 R+ z& N6 D; T3 F; d; }
0 F' U0 S3 w' ? W
在此首先非常感谢会员“奚鑫”提供资源,为方便大家观看,特此将全文转载到数学中国方便大家直接查阅~
5 z: R7 w/ Y; ~5 e: f, Z6 ~$ ]
/ Q7 t3 @# Y" {/ X* F除了EXCEL文件之外,我们在数据分析中还会经常接触到各种各样格式的数据源,比如,分隔符分割的文本数据,定长的文本数据。对于不同格式的数据通常采用不同的方式进行读取,因此,我们首先要明确将要读取的数据是什么样子的,这需要与数据的提供方进行确认。 需要与数据提供方确认的内容: 1.文件的类型,是文本文件还是其他文件; 2.字段分隔的方式,是以分隔符分隔的还是定长的; 3.字段的格式,是字符型、数值型还是时间日期型。 只有明确了数据是什么样子的,我们才能够编写代码导入相应的数据,明确需求是开始工作之前必须要做的事情。 这次只和大家分享如何读取最简单的数据类型——空格分隔的文本数据。 经过确认,需求如下: 在D盘的根目录下存放了名为myfile.txt的文本文件,该数据是由四个字段组成,分别是IdNumber,Name,Team,Weight,其中Weight为数值型变量,其余都为字符型变量,各个字段间以空格分隔。 需要把该文件的内容导入到名为club的数据集中。 文件的内容如下: 1023 David red 189 1049 Amelia yellow 145
' l/ u0 |; E/ Z4 ^( c9 T( M编写如下代码完成上面需求: data work.club; infile "D:\myfile.txt";( z# n9 p2 }1 w3 B
input IdNumber $ Name $Team $ Weight;; @% ]7 w1 @6 @+ ^, _# g$ ]& p& F
run; 代码说明: 上面的代码为SAS的数据步。 data:关键字,用于说明数据步的开始; work.club:生成要保存的数据集名称; infile:infile语句,后面接的是文本文件的路径和名称; input:后面接的是要导入字段的名称和格式,其中字段名后接符号$代表该字段为字符型,不做说明为数值型; run:提交上面的语句。 补充说明: SAS里面包含了数据步和过程步,关于什么是数据步和过程步以后会说明。 infile语句对应input语句。可以理解成从infile(输入文件)里input(读取)数据。
7 c2 I5 }' ~, K5 C2 p/ c- J# S+ O* O5 C: d- d2 b- t4 @" o0 e
|