当前位置: 首页 > news >正文

SAS应用入门学习笔记6

SQL (SAS):

Features:

1)不需要在每个query中重复调用每个SQL;

2)每个statement都是独立去完成的;

3)我们是没有proc print和proc sort语句的;(order by)

key syntax:

1)不写run,而是用quit来退出,这是SAS中一个很关键的点;

proc sql;select data, airfrom sashelp.airwhere air>110order by air desc;
quit;

代码说明:

1)air大于110的,然后按照降序排列的。

2)不需要proc print的功能;

3)order by就起到了print sort的功能;

proc sql;select *from sashelp.airwhere air>110order by air desc;
quit;

代码说明:这是将所有的变量都选取出来。

然后我们看下select语句:

/* select statement syntax with selected clauses

select:         

from:  从那个表中查询

where:查询条件

group by:把数据进行分组

having: 基于group进行条件设定

order by:     类似于proc sort

proc sql;validateselect date, airfrom sashelp.airwhere air>110order by air desc;
quit

代码说明:

1)validate是进行SQL语法验证。

 2)validate 关键字:

# 没有执行的时候进行测试;

# 检查列名称是否有效;

# 打印错误;

# 只能使用select语句;

proc sql noexec;select date, airfrom sashelp.airwhere air>110order by air desc;
quit;

代码说明:

1)我不让你执行,去做一个验证。

 1)describe:desc描述表属性。

2)这是SAS中使用中到的一些语句。

/* Describe */
proc sql;describe table sashelp.class;
quit;

获取到了数据集的属性和变量属性。

label:标签名称。通过format命令来增加label。

char:字符型

8:表示8位。

对数据集不清楚的情况下,就使用这种方式进行操作。

重新再看上面select语句的例子:

得到的结果:

SQL new vars with AS keyword

如何通过数据集中现有变量生成新的变量:

/* Calcluate the new column's value using the data in an existing column and name the new 

columns using the as keyword */

proc sql;select name,sex,weight/(height*height) as BMIfrom sashelp.class;
quit;

代码说明:

1)注意sex后面有一个逗号;

2)这个BMI的值是不对的,需要进行换算;

 scan函数:

 代码说明:

1)第一个返回为i;

2)第二个返回一个空值;

3)-1,表示的倒数第一位,返回为i;

case-when语句:

 

 

1)scan可以过滤变量第几位;

2)该数据集比较大,所以运行稍微慢点;

3)如果条件统一,可以这么写,如果条件不统一:

 可以使用这种方法来进行。

create table语句:

 

 代码说明:

1)每个语句都是独立运行的;如果describe语句不正确,不影响上面语句的执行;

2)如果我不想打开work,然后再去看我的数据集,

 

http://www.lryc.cn/news/7066.html

相关文章:

  • 【3D目标检测】Pseudo-Stereo for Monocular 3D Object Detection in Autonomous Driving
  • git 常用命令之 git branch
  • Oracle数据泵
  • ACWING寒假每日一题python
  • 御黑行动来袭--助力三月重保,构筑安全防线!
  • JavaScript HTML DOM 元素 (节点)
  • mybatis-plus ---2
  • 如何在Qt中设置背景图片,且不覆盖其它控件
  • PMP考前冲刺2.14 | 2023新征程,一举拿证
  • feign进行文件上传报错解决方案及有多个入参时的注意事项
  • java 枚举类型enum的用法详解
  • Java 基础面试题——关键字
  • C++——运算符重载
  • 前端食堂技术周刊第 70 期:Volar 的新开端、Lighthouse 10、良好的组件设计、React 纪录片、2022 大前端总结
  • react路由详解
  • mysql数据库完全备份和增量备份与恢复
  • CF1667E Centroid Probabilities
  • 全网详细总结com.alibaba.fastjson.JSONException: syntax error, position at xxx常见错误方式
  • 快速部署个人导航页:美好的一天从井然有序开始
  • 【Python】如何在 Python 中使用“柯里化”编写干净且可重用的代码
  • ROS笔记(4)——发布者Publisher与订阅者Subscribe的编程实现
  • Linux进程概念(一)
  • Leetcode.1124 表现良好的最长时间段
  • 达梦数据库会话、事务阻塞排查步骤
  • sqlServer 2019 开发版(Developer)下载及安装
  • 使用Arthas定位问题
  • 性能测试之tomcat+nginx负载均衡
  • 【手写 Vuex 源码】第十一篇 - Vuex 插件的开发
  • opencv基础知识和绘图图形
  • 15- 决策回归树, 随机森林, 极限森林 (决策树优化) (算法)