IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> SAS的基本使用介绍1(数据集建立与输入输出格式) -> 正文阅读

[大数据]SAS的基本使用介绍1(数据集建立与输入输出格式)

SAS的基本使用

提前说明:本软件安装较为复杂,而且所占空间很大

运行helloworld

Data a;                                                                                     
File print;                                                                      
Put 'hello world!';                                                                                   
Run;                                                                                                                                    
                                                                                                                                        
Proc print;                                                                                           
Run;

SAS数据集的建立

使用SAS首先需要建立数据集–DATA步

1.直接输入

数据集操作的基本结构框架

data 数据集名;
input 变量1 变量2 ......;
*input 用于输入变量
cards;(datalines;)
数据

;
*数据输入结束,必须换行打分号
*cards/datalines用来引领数据输入

数据与变量相对应,SAS使用单词cards,因为历史上需要打卡输入,现在新增datalines

*举例
data e;
input id name $ provience $;
cards;
12 liwei shanxi
;
proc print;
run;

注意:
字符串需要在变量名字后面加上$
注意在变量名中不能使用中文
不区分大小写

2.数据库导入,通过数据库、数据录入软件


永久数据集建立

数据库建立后,自动保存在资源管理器的逻辑库里,work里存放刚建的数据库,其他存放SAS自身数据,work是专门留给用户存放数据使用,但关闭之后会消失是临时数据。

数据存入逻辑库文件夹

在数据集前加上文件夹名

data sasuser.e;

引入新建的文件夹路径:

方法一:界面菜单操作

  1. 先建立文件夹
  2. 在菜单点击“新建逻辑库”,链接新建文件夹路径,资源管理器里会新增该逻辑库
  3. 同上在数据集前面加上逻辑库名

注意界面方式选择界面新建文件夹路径可能不全,需要小心

方法二:命令操作

libname 逻辑库文件夹名 "文件夹路径名称"

方法三:直接使用data语句指定一个路径和SAS数据集名

data "文件夹路径\数据集名称"

由于在资源管理库里面没有自主命名,会生成wc开头的默认文件夹

变量输入格式

20210918 有可能是读出日期或数字,由输入格式决定

数值型变量的输入

格式:w.d。w表示数值的总位数或宽度(包括小数点),d表示数值的小数部分的位数,即使没有小数,点号也一定要加上

input 变量1 输入格式1
data fh;
input x 4.2;
cards;
12
2.1
15.6
23.46
;
proc print;
run;

>>0.12 2.10 15.60 23.40

读几位已经确定,然后再保留后两位所以是23.40
对整数保留小数,SAS直接降做小数处理
注意小数点占一位

通常数值输入不加输入格式,避免出错

字符型变量的输入格式

格式 $w.
其中 $必须有,w表示字节数(一个汉字占两个字节),SAS默认读取8位

日期型变量输入

单独只有输入时运行会出问题,还需要输出格式辅助

下列是常见的几种日期型输入格式,其中w表示日期宽度,宽度值不能超过32,具体写多少要根据录入的数据宽度而定

在这里插入图片描述
想要具体了解SAS日期型变量的输入格式可参见:
SAS官方关于日期变量的文件


特殊输入符

  1. :冒号的作用
data fh;
input city $16. DDD$;
cards;
陕西省西安市 029
陕西省汉中市洋县 0916
;
proc print;
run;
>>出现格式混乱

分析:由于变量指定了宽度导致出现问题,SAS就不再以默认的空格作为变量区分的标志了,而是按照指定的宽度来识别变量

解决:在变量和输入格式之间加上一个冒号,命令SAS,如果要读取下一个变量需要满足以下两个条件:要么遇见空格,要么按宽度读取

data fh;
input city: $16. DDD$;
cards;
陕西省西安市 029
陕西省汉中市洋县 0916
;
proc print;
run;
  1. &作用

如果变量观测值本身有空格,在变量后面加上&

data fh;
input city: $16. DDD$;
cards;
陕西省 西安市 029
陕西省 汉中市洋县 0916
;
proc print;
run;
>>输出错误

解决:首先,两个观测值非等长,故在指定宽度的同时需要加上冒号
然后,在变量后面加上&符号,并在编程输入时,将同行前后两个不同变量值之间加上2个或者更多空格
分析:&的作用在于把2个或者更多的空格作为分隔符。

data fh;
input city: $20. DDD$;
cards;
陕西省 西安市  029
陕西省 汉中市洋县  0916
;
proc print;
run;

输出格式

format 变量1 格式1 变量2 格式2;
* 在input与cards之间

数值型变量输出格式

w.d,commaw.d和percentw.d

w.d和输入使用相同

commaw.d的作用是将数值的整数部分自右向左每三位用逗号隔开,当数值位数较多时,这是比较标准的表示方式。

percentw.d的作用是将数据显示为百分比的形式,它自动将变量值乘以100,并加上%。

%需要占三个字节

data e3;
input a1 a2 a3;
format a1 6.2 a2 comma13.2 a3 percent8.2;
cards;
50 1054387 0.123 
13 97490321 0.18
;
proc print;
run;

字符型变量

$w.
输出与输入格式相同,但不同在于输入格式中默认读取8个字符,但输出没有8个字符的限制

日期输出

data dat; 
input d1: yymmdd10. d2: yymmdd10.  d3: yymmdd10. d4:yymmdd10. d5: yymmdd10.; 

format d1 yymmdd10. d2 yymmdds8.  d3 yymmddp10. d4 yymmddb8.  d5 yymmddc8.;  
cards; 
20.06.16 200616 20200616 200616 200616 
; 
proc print ; 
run;


在这里插入图片描述

输出格式 在 yymmdd后面+字母

d 表示以‘ - ’ 形式显示日期;
s 表示以‘ / ’ 形式显示日期;
p 表示以‘ . ’ 形式显示日期;
b 表示以‘ 空格 ’ 形式显示日期;
c 表示以‘ : ’ 形式显示日期;
n 表示以‘ 无连接符 ’ 形式显示日期;
字母不可以加在 date7.或date7. 的格式 !!
SAS默认使用 ‘ - ’ 连接年月日。
*/

输入与输出之间的关系

如果指定输入格式,SAS就按照这种格式读取数据,会真正改变输入值
而输出格式不会真正改变输入值,只是按指令格式显示而已。
例如:X值为xian,指定输入格式为2,则X值就是xi;如果X的输入值为xian,但输出格式为2,那么X的值仍为xian,但输出是xi

data ww; 
input x$ y$2.;  /* y 是输入格式定义 2.  */
format x$2.; 	/* x 是输出格式定义 2.  */
x1 = x+1;  		/* x1 本质还是 1100 +1 = 1101 */
y1 = y+1; 		/* y1 输入格式改变2. y=11,y1=11+1=12 */

cards; 
1100 1100 
; 
proc print; 
run;
  • SAS 会自动把字符型转为数值型参与运算,并在日志窗口有显示

资料来源:课程-SAS编程基础与实例分析

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-23 11:32:08  更:2021-09-23 11:33:14 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:26:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码