1.数据合并

1)利用set语句进行纵向合并,用法格式为:

data 数据集;

set 数据集1(数据集选项)数据集2(数据集选项)…;

run;

数据集选项:set 数据集1(in=临时变量1)set数据集2(in=临时变量2)…;

                      set数据集1(rename=(原名1=新名1…)) 数据集2(rename=(原名1=新名1…))…;

查看变量属性:proc contents data=b;

复制数据集:set b;新建的b数据集会覆盖原来的b数据集。

data语句的作用是创建新的空白数据集,而不是打开数据集。

2)利用merge语句进行横向合并

data 数据集;

merge 数据集1 数据集2…;

by 变量1 变量2 …;

run;

data ab;
merge ab1 ab2;
by id;              /*指定按id变量连接两个数据集*/
drop a2 b2;         /*删除变量a2和b2*/
proc print;
run;

在利用by语句进行横向合并时,如果两个数据集事先没有按id排序,一定要先分别对它们都排序才能合并。 排序在SAS中可通过proc sort过程实现。

利用in=选项生成两个数据集的交集;

data ab;
merge ab1(in=d1) ab2(in=d2);
by id;
if d1=1 and d2=1;
proc print;
run;

2.数据对比

proc compare 基本格式如下:

proc compare <base=数据集 compare=数据集> <nosummary> <transpose>;

by 变量1 变量2 …;

id变量1 比纳凉2…;

run

< >中的内容表示可选项,表示该选项可写可不写,根据实际需要而定。

base 和compare分别指定两个比较和被比较的数据集,nosummary的作用是不显示一些概括性的结果,transpose的作用是安吉路显示不一致的结果,如果不能指定该选项,默认的是按变量显示不一致的结果,具体按哪个顺序显示取决于你的爱好和目的。

3.数据清洗

1)查找和删除重复值

proc sort,基本格式如下:

proc sort <data=数据集> <out=数据集> <nouniquekey> <nodupkey>;

by <descending> 变量1 <descending> 变量2 …;

run;

out=数据集的意思是把排序后的数据输出到指定数据集中,如果不加该选项,排序后的数据集将覆盖原有数据集,这样原数据就无法找回。nouniquekey选项的作用是输出重复值,nodupkey选项的作用是删除重复值,也就是输出唯一值。descending选项的作用是按降序排序,如果不加该选项,默认的是按升序排序。

proc sort其实是个排序过程,如果没有nouniquekey和nodupkey这两个选项,它的作用就是实现对某变量的排序。

proc sort data=sasuser.xb nouniquekey out=rep;
by name gender;
proc print data=rep;
run;

2.查找缺失值

对多个变量执行完全相同的操作,可以考虑数组执行这些操作,可以大幅提高效率。

数组的一般形式:
array 数组名[下标] <$> <数组元素> <(元素初始值)>;

下标指定数组中包含的元素个数,这里的元素一般就是变量。

SAS数据清洗和加工相关推荐

  1. #SAS学习-数据加工处理-中

    上篇文章讲了一部分SAS处理数据的函数,由于函数实在太多,所以我就大概计划分3篇文章进行叙述,现在这个是第2篇~这篇主要集中在过程步的函数讲解~ 1)SAS过程步常用语句 大部分过程步都有一个必须的语 ...

  2. Python相关机器学习‘武器库’

    https://www.cnblogs.com/DicksonJYL/p/9569197.html 开始学习Python,之后渐渐成为我学习工作中的第一辅助脚本语言,虽然开发语言是Java,但平时的很 ...

  3. 利用 Python 分析了某化妆品企业的销售情况,我得出的结论是?

    作者:Cherich_sun 来源:公众号「杰哥的IT之旅」ID:Jake_Internet [导语]本篇文章是关于某化妆品企业的销售分析.从分析思路思路开始带大家一步步的用python进行分析,找出 ...

  4. 想进美团不知道选哪个技术岗位?这里有一份通关秘籍!

    春暖花开,美团春招已经启动,针对校招和社招开放了几千个职位,其中很大部分都是技术岗位. 随着互联网的高速发展,技术岗位在不断地细分,比如软件开发不仅分为前端和后端,前端会分为Web.iOS和Andro ...

  5. 出发a标签_以用户标签为例,复盘B端产品的需求挖掘方法论

    阅读指南 受众人群:B端初级产品经理 阅读收获: B端产品需求挖掘的一些技巧: 了解用户标签/画像的一些业务知识. 手上负责一个和数据方面有关的B端系统,在日常的产品规划当中,没有关于"用户 ...

  6. 成本管控难题怎么破?BI大神带你一步步拆解分析,节省成本390万

    注:本文为2021帆软BI可视化夏季挑战赛参赛作品,未经授权禁止转载. 今天给大家分享一个优质的BI可视化分析案例--<全面项目利润分析,以激励倒逼成本管控>,这份作品来自于团队" ...

  7. 徐工施维英:基于帆软搭建数字化驾驶舱,提高生产效率50%

    注:本文为帆软2021数据生产力大赛"全场大奖"案例,未经授权禁止转载. 公司简介 徐州徐工施维英机械有限公司(简称"徐工施维英")是徐工集团旗下.全面致力于混 ...

  8. 企业为什么要建设数据分析平台?应该怎么建?

    大数据时代,几乎每一个企业都对数据分析平台趋之若鹜,尤其是在今年疫情爆发之后,更多的企业主意识到了数据所具有的的极大商业价值,以及其作为支撑企业信息智能化的无形资产. 通常来说,企业内部的运营和业务系 ...

  9. 50%企业数据治理失败!这9大要素才是成功关键

    导读:企业数据治理的9个要素. 作者:用友平台与数据智能团队 来源:大数据DT(ID:hzdashuju) 知名咨询公司Gartner的调研显示,在实施数据治理的企业中,有34%的企业数据治理处于良性 ...

最新文章

  1. oracle的dual表
  2. Spring Getting Started (1):构建一个RESTful的web服务
  3. 计算机网络电缆被拔出是怎么办,网络电缆被拔出是什么意思?网络电缆被拔出的修复办法...
  4. 【HibernateHibernate实体关系映射——双边的多对一、一对多关系
  5. [Project Euler] 来做欧拉项目练习题吧: 题目013
  6. cython 安装升级_Anaconda安装pytorch,torchvision和 cython
  7. 《转》Babel 入门教程
  8. “strcmp”不能将参数从“LPWSTR”转换为“const char *”
  9. 7月6号奥特曼服务器维护中,泰迦奥特曼:7月6号开播,泰迦是泰罗儿子,优幸可变为三个奥特曼...
  10. Java个人财务管理小软件
  11. oracle 查询字段去空格,ORACLE 所有表的所有字段去空格方法
  12. 百度网盘下载速度太慢,百度网盘下载慢怎么解决
  13. Guava的两种本地缓存策略
  14. 深度学习之Deep Image CTR Model
  15. vue+elementUI+vue-i18n 实现国际化
  16. linux 设置u盘为只读模式,U盘如何设置为只读模式
  17. 【Python基础】python中的re模块
  18. 总有戏精想害朕?那是你没试过百度人脸核身
  19. git 名词解释和常用术语(二)
  20. 万象2004修改服务器IP,win10系统运行万象网管2004服务端提示”类型转换错误”的图文办...

热门文章

  1. 基于微信小程序的课堂管理助手设计与实现-计算机毕业设计源码+LW文档
  2. 带你走进计算机辅助药物设计(CADD)蛋白质分子对接
  3. 微信jsapi支付获取code_【微信支付】JSAPI支付开发者文档
  4. ME3616 OpenSDK编译
  5. HTML5第二天笔记04——学会使用阿里巴巴文字图片
  6. 谭晓生:人工智能时代的网络安全新发展
  7. is not assignable to
  8. 抢滩登陆游戏android源码
  9. 专插本C语言入门第一天
  10. GB28181 - 安防视频监控联网标准