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;
引入新建的文件夹路径:
方法一:界面菜单操作
- 先建立文件夹
- 在菜单点击“新建逻辑库”,链接新建文件夹路径,资源管理器里会新增该逻辑库
- 同上在数据集前面加上逻辑库名
注意界面方式选择界面新建文件夹路径可能不全,需要小心
方法二:命令操作
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官方关于日期变量的文件
特殊输入符
- :冒号的作用
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;
- &作用
如果变量观测值本身有空格,在变量后面加上&
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(数据集建立与输入输出格式)相关推荐
- SAS的基本使用介绍2(变量的输入输出格式)
前言 有关SAS的基础使用可以回看上一篇 SAS的基本使用介绍1(数据集建立与输入输出格式) 本文将继续介绍SAS基本使用 自定义格式 SAS的灵活之处在于可自定义输入输出 例如:在输入性别时,输入1 ...
- SAS(二)SAS基本数据类型及SAS基本模块的介绍
SAS(二)SAS基本数据类型及SAS基本模块的介绍 SAS基本介绍 SAS 是英文Statistical Analysis System的缩写,翻译成汉语是统计分析系统,最初由美国北卡罗来纳州立大学 ...
- python数据集划分_机器学习和数据集介绍、数据集划分、特征抽取、归一化
机器学习介绍和数据集介绍 机器学习: 机器学习是一门多学科交叉专业,涵盖概率论知识,统计学知识,近似理论知识和复杂算法知识,使用计算机作为 工具并致力于真实实时的模拟人类学习方式,并将现有内容进行知识 ...
- 服务器硬盘SAS与SATA区别介绍
服务器硬盘SAS与SATA区别介绍SAS硬盘与SATA硬盘: 串行技术 - 包括SAS硬盘(串行连接SCSI)和SATA硬盘(串行ATA)- 比旧款的Intel Xeon服务器有了更好的RAS性能.当 ...
- EL之Bagging:kaggle比赛之利用泰坦尼克号数据集建立Bagging模型对每个人进行获救是否预测
EL之Bagging:kaggle比赛之利用泰坦尼克号数据集建立Bagging模型对每个人进行获救是否预测 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 bagging_clf = ...
- ML之RF:kaggle比赛之利用泰坦尼克号数据集建立RF模型对每个人进行获救是否预测
ML之RF:kaggle比赛之利用泰坦尼克号数据集建立RF模型对每个人进行获救是否预测 目录 输出结果 实现代码 输出结果 后期更新-- 实现代码 #预测模型选择的RF import numpy as ...
- TF之LSTM:基于Tensorflow框架采用PTB数据集建立LSTM网络的自然语言建模
TF之LSTM:基于Tensorflow框架采用PTB数据集建立LSTM网络的自然语言建模 目录 关于PTB数据集 代码实现 关于PTB数据集 PTB (Penn Treebank Dataset)文 ...
- 使用TSA包中的 beersales 数据集建立TAR模型
)使用TSA包中的 beersales 数据集建立TAR模型 library(TSA) data("beersales") prey.tar.1=tar(y=beersales,p ...
- Google Earth Engine—ETOPO1是一个1弧分的地球表面全球浮雕模型,整合了陆地地形和海洋测深。它是由许多全球和区域数据集建立的。它包含两个高程带:冰面和基岩。
ETOPO1 is a 1 arc-minute global relief model of Earth's surface that integrates land topography and ...
最新文章
- 逆序数2 HDOJ 1394 Minimum Inversion Number
- Hi3516A开发-- 常见问题FAQs
- WCF中安全的那些事!!!
- easyui combox使用
- centos 6 安装mysql,CentOS6.5安装MySQL教程(完整教程)
- 容器中apscheduler不执行_APScheduler:定时任务框架
- iOS vuforia 学习钻研(一)
- 山东到底有没有互联网?
- Vue登录注册,并保持登录状态
- 每天一个Linux命令(6):rmdir命令
- Lucene整理--索引的建立
- 【STM32】STM32CubeMX使用FreeRTOS教程1----定时器学习
- 扫地机器人的特点描写_对扫地机器人作文的评语
- verilog编程,可能你一直在错误地使用计数器cnt
- hardhat 教程及 hardhat-deploy 插件使用
- Vue教程-可视化图表
- 彩屏显示入门:我要五彩斑斓的黑 | 用Arduino玩转ESP32与掌控板系列
- 7-34 任务调度的合理性(25 分)
- python咋变汉语_Python3实现汉语转换为汉语拼音
- jQuery 从零开始学习 (三) 属性与css样式
热门文章
- 俯仰 (pitch) - 偏摆 (yaw) - 翻滚 (roll)
- 计算机原理与结构 实验3《单周期微处理器设计》
- 8021x 获取IP信息失败,请检查锐捷认证客户端当前配置是否符合所在网络的要求,检查完毕后尝试重新认证
- 使用原生js实现复制剪贴板
- Mysql高性能优化笔记(含578页笔记PDF文档),收藏了
- Openshift中Pod的SpringBoot2健康检查
- vue写一个通讯录页面
- 【百日刷题计划 第一天】——熟悉语法 语法基础题
- (黑)群晖设置Ping不通路由器自动关机 实现断电自动关机
- java从入门到精通API02