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.d。w表示数值的总位数或宽度(包括小数点),d表示数值的小数部分的位数,即使没有小数,点号也一定要加上

字符型变量

$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编程基础与实例分析

SAS的基本使用介绍1(数据集建立与输入输出格式)相关推荐

  1. SAS的基本使用介绍2(变量的输入输出格式)

    前言 有关SAS的基础使用可以回看上一篇 SAS的基本使用介绍1(数据集建立与输入输出格式) 本文将继续介绍SAS基本使用 自定义格式 SAS的灵活之处在于可自定义输入输出 例如:在输入性别时,输入1 ...

  2. SAS(二)SAS基本数据类型及SAS基本模块的介绍

    SAS(二)SAS基本数据类型及SAS基本模块的介绍 SAS基本介绍 SAS 是英文Statistical Analysis System的缩写,翻译成汉语是统计分析系统,最初由美国北卡罗来纳州立大学 ...

  3. python数据集划分_机器学习和数据集介绍、数据集划分、特征抽取、归一化

    机器学习介绍和数据集介绍 机器学习: 机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为 工具并致力于真实实时的模拟人类学习方式,并将现有内容进行知识 ...

  4. 服务器硬盘SAS与SATA区别介绍

    服务器硬盘SAS与SATA区别介绍SAS硬盘与SATA硬盘: 串行技术 - 包括SAS硬盘(串行连接SCSI)和SATA硬盘(串行ATA)- 比旧款的Intel Xeon服务器有了更好的RAS性能.当 ...

  5. EL之Bagging:kaggle比赛之利用泰坦尼克号数据集建立Bagging模型对每个人进行获救是否预测

    EL之Bagging:kaggle比赛之利用泰坦尼克号数据集建立Bagging模型对每个人进行获救是否预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 bagging_clf = ...

  6. ML之RF:kaggle比赛之利用泰坦尼克号数据集建立RF模型对每个人进行获救是否预测

    ML之RF:kaggle比赛之利用泰坦尼克号数据集建立RF模型对每个人进行获救是否预测 目录 输出结果 实现代码 输出结果 后期更新-- 实现代码 #预测模型选择的RF import numpy as ...

  7. TF之LSTM:基于Tensorflow框架采用PTB数据集建立LSTM网络的自然语言建模

    TF之LSTM:基于Tensorflow框架采用PTB数据集建立LSTM网络的自然语言建模 目录 关于PTB数据集 代码实现 关于PTB数据集 PTB (Penn Treebank Dataset)文 ...

  8. 使用TSA包中的 beersales 数据集建立TAR模型

    )使用TSA包中的 beersales 数据集建立TAR模型 library(TSA) data("beersales") prey.tar.1=tar(y=beersales,p ...

  9. Google Earth Engine—ETOPO1是一个1弧分的地球表面全球浮雕模型,整合了陆地地形和海洋测深。它是由许多全球和区域数据集建立的。它包含两个高程带:冰面和基岩。

    ETOPO1 is a 1 arc-minute global relief model of Earth's surface that integrates land topography and ...

最新文章

  1. 逆序数2 HDOJ 1394 Minimum Inversion Number
  2. Hi3516A开发-- 常见问题FAQs
  3. WCF中安全的那些事!!!
  4. easyui combox使用
  5. centos 6 安装mysql,CentOS6.5安装MySQL教程(完整教程)
  6. 容器中apscheduler不执行_APScheduler:定时任务框架
  7. iOS vuforia 学习钻研(一)
  8. 山东到底有没有互联网?
  9. Vue登录注册,并保持登录状态
  10. 每天一个Linux命令(6):rmdir命令
  11. Lucene整理--索引的建立
  12. 【STM32】STM32CubeMX使用FreeRTOS教程1----定时器学习
  13. 扫地机器人的特点描写_对扫地机器人作文的评语
  14. verilog编程,可能你一直在错误地使用计数器cnt
  15. hardhat 教程及 hardhat-deploy 插件使用
  16. Vue教程-可视化图表
  17. 彩屏显示入门:我要五彩斑斓的黑 | 用Arduino玩转ESP32与掌控板系列
  18. 7-34 任务调度的合理性(25 分)
  19. python咋变汉语_Python3实现汉语转换为汉语拼音
  20. jQuery 从零开始学习 (三) 属性与css样式

热门文章

  1. 俯仰 (pitch) - 偏摆 (yaw) - 翻滚 (roll)
  2. 计算机原理与结构 实验3《单周期微处理器设计》
  3. 8021x 获取IP信息失败,请检查锐捷认证客户端当前配置是否符合所在网络的要求,检查完毕后尝试重新认证
  4. 使用原生js实现复制剪贴板
  5. Mysql高性能优化笔记(含578页笔记PDF文档),收藏了
  6. Openshift中Pod的SpringBoot2健康检查
  7. vue写一个通讯录页面
  8. 【百日刷题计划 第一天】——熟悉语法 语法基础题
  9. (黑)群晖设置Ping不通路由器自动关机 实现断电自动关机
  10. java从入门到精通API02