SAS学习经验总结分享:篇一—数据的读取
第一篇:BASE SAS分为数据步的作用及生成数据集的方式
我是学经济相关专业毕业的,从事数据分析工作近一年,之前一直在用EXCEL,自认为EXCEL掌握的还不错。
今年5月份听说了SAS,便开始学习,这里总结分享下学习历程及体会:第一本书是《SAS9.2从入门到精通》,从这本书学习到基本的SAS知识,可以作为入门教程。
(本文为原创,禁止复制或转载,转载请标明出处:http://www.cnblogs.com/smallcrystal/p/4830855.html )
一、数据步的作用是生成SAS系统能够识别的数据集,包括对外部数据的处理(通过infile/import函数)、数据库文件(通过libname 逻辑库建立联系)或内部输入(input)。以“data ”开始,“run”结束。
- 内部生成数据集结构为:
data 数据集名;
input 变量名1 变量名2 $ @@;
cards;
输入数据或字符以空格隔开 ;
run;
- 将MYSQL中的数据导入生成数据集,结构为:
libname 逻辑库名 MYSQL user=登录数据库的用户名 password=密码 database=数据库名;/*通过libname 逻辑库建立与数据库的联系/
data 数据集名 set 逻辑库.数据库中的表名;
run;
- 读入外部数据生成数据集,结构为:
(1)data 数据集;
infile ‘外部文件所在的位置及名称及文件类型’ <选项>;/infile语句用来告诉SAS外部数据文件存储位置/
input 变量1 变量2 ;
run;
(2)通过宏变量
libname 逻辑库名;
%let 宏变量名1=’外部文件路径‘;
%let 宏变量名2=’.文件类型‘;
filename 文件名 “&宏变量名1&宏变量名2”;/*定义文件名引用宏变量,&宏变量,用双引号/;
(这样外部文件已经被filename定义的文件名取代了,filename用来指定文件路径所对应的逻辑名)
data 数据集;
infile 文件名 <选项>;/*读取文件名,infile语句和filename语句配合使用/
input 变量名1 变量名2;
……
run;
(3)import读取外部文件:以EXCEL为例
libname 逻辑库名;
proc import out=输出的数据集名 /*此处没有分号/
datafile=’要导入的EXCEL文件的完整路径及文件名.扩展名‘;
sheet=“表单名”;
getnames=yes;/第一行记录的是字段名,否则为NO
run;
data 数据集;
set 输出的数据集名;
run;
SAS系统可访问的外部文件及读取方式汇总:
TXT:INFILE/IMPORT
CSV:INFILE/IMPORT
EXCEL:INFILE/IMPORT
SPSS:IMPORT
MS ACCESS:ACCESS
ORACLE数据库:LIBNAME方式、PASSTHROUGH方式
libname是SAS数据库与其他数据文件实现数据交换的最主要的方式,可通过数据引擎读入其他分析文件数据集及其他数据库文件。
passthrough方式是通过connect语句建立SAS和其他数据库之间的通信,并使用sql过程将其他数据库数据直接导入到SAS系统。
SAS学习经验总结分享:篇一—数据的读取的更多相关文章
- SAS学习经验总结分享:篇五-过程步的应用
之前已经介绍过BASE SAS分为数据步和过程步,过程步是对数据步生成的数据集进行分析和处理,并挖掘数据信息,写出分析报告做总结评价. (本文为原创,禁止复制或转载,转载务必标明出处:http://w ...
- SAS学习经验总结分享:篇四—SQL过程
SQL过程 SQL过程是实现对数据集或关系数据库的表进行操作的过程,对数据集或关系数据库的表进行查询.修改.创建表.删除数据.插入数据和更新数据等功能.提现了SAS对大型数据库管理系统通用的SQL语言 ...
- SAS学习经验总结分享:篇三—SAS函数
SAS函数学习 文章为原创,禁止复制或转载,转载请标明出处, http://www.cnblogs.com/smallcrystal/p/4842346.html 1.函数输写格式: 1)一般书写格式 ...
- SAS学习经验总结分享:篇二—input语句
SAS编程语言中input语句的应用 SAS数据步的建立离不开input语句,在读入外部数据或cards语句后面的数据块时需要通过input语句定义变量.下面介绍input语句定义变量 ...
- R学习笔记 第三篇:数据框
数据框(data.frame)用于存储二维表(即关系表)的数据,每一列存储的数据类型必须相同,不同的数据列的数据类型可以相同,也可以不同,但是,每列的长度必须相同.数据框的每列可以有唯一的命名,在已创 ...
- R学习笔记 第五篇:数据变换和清理
在使用R的分组操作之前,首先要了解R语言包,包实质上是实现特定功能的,预先写好的代码库(library),R拥有大量的软件包,许多包都是由某一领域的专家编写的,但并不是所有的包都有很高的质量的,在使用 ...
- 跟Google学习Android开发-起始篇-构建你的第一个应用程序(4)
说明:此系列教程翻译自Google Android开发者官网的Training教程,利用Chome浏览器的自动翻译功能作初译,然后在一些语句不顺或容易造成误解的地方作局部修正.方便英文不好的开发者查看 ...
- 从技术小白到收获BAT研发offer,分享我的学习经验和感悟(赠送相关学习资料)
去年秋季参加了校园招聘,有幸拿到了BAT.头条.网易.滴滴.亚马逊.华为等offer,经过研究生两年的学习积累,终于达成了自己的目标,期间也经历了很多,谨以此文,聊表感叹,也会分享很多我的Java学习 ...
- mysql学习【第3篇】:使用DQL查询数据
狂神声明 : 文章均为自己的学习笔记 , 转载一定注明出处 ; 编辑不易 , 防君子不防小人~共勉 ! mysql学习[第3篇]:使用DQL查询数据 DQL语言 DQL( Data Query Lan ...
随机推荐
- BZOJ-1038 [ZJOI2008]瞭望塔
先求半平面交,然后建塔的地方肯定是在半平面交的交点上或者是在地面线段的交点上. #include <cstdlib> #include <cstdio> #include &l ...
- 数组去重js方式
var selectmap = new Array(); /(\x0f[^\x0f]+)\x0f[\s\S]*\1/.test("\x0f"+selectmap.join(&quo ...
- HDU 5253 最小生成树 kruscal
Description 老 Jack 有一片农田,以往几年都是靠天吃饭的.但是今年老天格外的不开眼,大旱.所以老 Jack 决定用管道将他的所有相邻的农田全部都串联起来,这样他就可以从远处引水过来进行 ...
- ios 上传视频或图片
关于iOS如何实现视频和图片的上传, 我们先理清下思路 思路: #1. 如何获取图片? #2. 如何获取视频? #3. 如何把图片存到缓存路径中? #4. 如何把视频存到缓存路径中? #5. 如何上传 ...
- 转::iOS 仿淘宝,上拉进入详情页面
今天做的主要是一个模仿淘宝,上拉进入商品详情的功能,主要是通过 tableView 与 webView 一起来实现的,当然也可根据自己的需要把 webView 替换成你想要的 // // ViewCo ...
- 转:Java 动态代理的内部实现机制(大体意思正确,写的还行的一篇文章)
转:Java动态绑定的内部实现机制 JAVA虚拟机调用一个类方法时,它会基于对象引用的类型(通常在编译时可知)来选择所调用的方法.相反,当虚拟机调用一个实例方法时,它会基于对象实际 的类型(只能在运行 ...
- 用Gson解析没有数据头的纯数组json字符串
无数据头Json字符串 Json字符串只有数组,而次数组没有名字,如下 [ { "name": "zhangsan", "age": &qu ...
- react-transition-group v2 用法概述
官方文档地址:https://reactcommunity.org/react-transition-group/ 在react-transition-group v2中,暴露了三个组件: Trans ...
- LINUX CP命令直接覆盖不提示按Y/N的方法
refer to: https://blog.csdn.net/qq_36741436/article/details/78732201 cp覆盖时,无论加什么参数-f之类的还是提示是否覆盖,当文件比 ...
- jvm 简单描述
java零基础入门-面向对象篇(一) 基础类型和引用类型 友情提示:本章开始可能会有部分较深入的内容,不说又不行,说了又很难解释清楚,因为里面的技术细节实在太多太复杂,所以我会屏蔽部分技术细节,只展示 ...