数学建模社区-数学中国
标题: 如何用SAS读取用空格分隔的数据 [打印本页]
作者: 花映碧水 时间: 2013-12-29 10:52
标题: 如何用SAS读取用空格分隔的数据
本帖最后由 花映碧水 于 2013-12-29 13:29 编辑 " [& H3 ]0 I- |
) T9 X1 ?# I4 P6 C1 ~在此首先非常感谢会员“奚鑫”提供资源,为方便大家观看,特此将全文转载到数学中国方便大家直接查阅~
1 C4 h5 ]. k5 B- `( S0 y* N. S- F; P0 |3 K+ o/ R( m: M: X+ ?! I
除了EXCEL文件之外,我们在数据分析中还会经常接触到各种各样格式的数据源,比如,分隔符分割的文本数据,定长的文本数据。对于不同格式的数据通常采用不同的方式进行读取,因此,我们首先要明确将要读取的数据是什么样子的,这需要与数据的提供方进行确认。
需要与数据提供方确认的内容:
1.文件的类型,是文本文件还是其他文件;
2.字段分隔的方式,是以分隔符分隔的还是定长的;
3.字段的格式,是字符型、数值型还是时间日期型。
只有明确了数据是什么样子的,我们才能够编写代码导入相应的数据,明确需求是开始工作之前必须要做的事情。
这次只和大家分享如何读取最简单的数据类型——空格分隔的文本数据。
经过确认,需求如下:
在D盘的根目录下存放了名为myfile.txt的文本文件,该数据是由四个字段组成,分别是IdNumber,Name,Team,Weight,其中Weight为数值型变量,其余都为字符型变量,各个字段间以空格分隔。
需要把该文件的内容导入到名为club的数据集中。
文件的内容如下:
1023 David red 189
1049 Amelia yellow 145% P" m% ]4 o+ B1 d
编写如下代码完成上面需求:
data work.club;
infile "D:\myfile.txt";5 r* W- O9 j& @% w8 `9 N/ R ]
input IdNumber $ Name $Team $ Weight;6 S/ g0 M. e) e& l- @- Z. h6 ~
run;
代码说明:
上面的代码为SAS的数据步。
data:关键字,用于说明数据步的开始;
work.club:生成要保存的数据集名称;
infile:infile语句,后面接的是文本文件的路径和名称;
input:后面接的是要导入字段的名称和格式,其中字段名后接符号$代表该字段为字符型,不做说明为数值型;
run:提交上面的语句。
补充说明:
SAS里面包含了数据步和过程步,关于什么是数据步和过程步以后会说明。
infile语句对应input语句。可以理解成从infile(输入文件)里input(读取)数据。
* [, p; i2 \6 C2 {
2 J- V" g# O% ?, ^
作者: 奚鑫 时间: 2013-12-29 11:19
为什么没有经过我的同意就复制不的文章呢?
作者: 奚鑫 时间: 2013-12-29 11:30
为什么没有经过我的同意就复制我的文章,还删掉我的帖子,把别人写的东西当成是你写的?
作者: 花映碧水 时间: 2013-12-29 13:37
奚鑫 发表于 2013-12-29 11:30
, R- {* q: c. e; A8 Q8 P8 {. z
为什么没有经过我的同意就复制我的文章,还删掉我的帖子,把别人写的东西当成是你写的?
( G/ Z9 y0 a! s6 p. z首先你得帖子没有被删除,删除的话,你也会收到信息~其次我也没有权限给你删除~将你的资料转载到此的原因有:1.数学中国不接受站外个人链接~ 2.网站不接受类似推销自己的模式存在~ 3. 帖子内容我已经声明~
作者: 奚鑫 时间: 2013-12-29 14:10
我只是希望大家能够珍惜别人的劳动成果,当花了几个小时写完了一篇文章后发现作者换成了别人,你的感想会是什么?之所以发的是链接,不知到你有没有认真写过文章,加高亮,调格式会花多长时间。跟别人分享知识就得在论坛里面重新写一遍?分享链接的目的是创造一个和大家一起交流的机会,如果对我提供的方法有疑问可以在帖子下面提问,一起交流。还有一点不明白,刚刚查了,我的帖子是没有被删除,但是发帖时间从2013年变成了2011年,真的不知道是什么情况。
作者: 本世界的大人 时间: 2015-9-8 10:14
谢谢分享,好好学习。。。。。
: ?: m3 [2 m6 Y- K1 `/ R
欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) |
Powered by Discuz! X2.5 |