SAS-编程中的小技巧(七)

最近啊,小编很倒霉,用喝凉水都塞牙来形容一点也不为过...虽然难以启齿,但是花费巨额的代价买的教训,还是想分享给大家。“驾驶有风险,开车需谨慎”即使在停车场再小的剐蹭,也不要走...第一时间报警,走了就有“肇事逃逸”的风险,就变成了“我为鱼肉,人为刀俎”...只能选择私了..认人宰割了....而且啊,私了的钱保险也不给报销的钱都花完了,还是老老实实回家写公众号了...

让“删库跑路”变成历史...

很多人都发现了用SAS程序语句删除的数据集,在回收站里面找不到...那就这就意味着不能用传统的回收站还原的方式来恢复误删除的SAS数据集...如果数据是没有办法溯源,是否剩下的只有是删库跑路这个选择呢呢...前几天看到有人问到相关问题,觉得还算不错,于是就尝试了如何去恢复用SAS语句删除的数据集...

这里要被迫

给一个软件打广告

因为解决这个问题太好使了

而且还不花钱

这个软件就是360文件恢复

试了几下

不管是永久库还是临时库

都能恢复

...

下面是我删除的数据集

嗯,如上和回收站还原一样,都是一键式傻瓜操作...自从有了360文件恢复后,在也不用担心删库跑路的事情发生了...当然删除也需谨慎...比较重要的库,可以在建立逻辑库的时候添加一个option ,这个option就是access=readonly。。具体方式如下..奥,顺带提一下异常关闭SAS后程序如何找回请点击:

SAS-编程中的小技巧(四)

我用Update更新了数据集

前一段时间有一个小需求,就是将一个数据的集的内容更新到另外一个数据集中。于是呀,小编就想到了用update的方法来进行数据集的更新...一直都知道有这么一个东西,是类似于merge等存在的...但是呢,也一直没有机会用到update...于是就现学现卖,发现简直是数据更新的一大利器...

在这里首先借用一下

SASHELP里面的一张图...

看上面的图

就很容易知道update的用法了...

语法结构和merge也是惊人的相似..

从效果上来说同样有惊人的相似之处...

当然上面也可以看到update更新的数据集的时候

缺失值并没有完成替换

(注意:上面的那个图并不太好看出缺失值没有被替换(2010有俩个)

,继续往下看完就应该可以理解了)

这个是由于option控制的

系统默认updatemode=missingcheck

如果想实现连缺失也替换的话

那么可以修改option

变成updatemode=nomissingcheck

听取某人意见后决定代码结果展现方式如下

尽管update语句与merge有惊人的相似

但是依旧有一些不同的之处...

比如,如果数据集观测出现多对一的情况

是会报出绿色的warning

只会更新主数据的第一条观测

当然merge在这里更多体现了一个左连接的作用

那么如果出现数据集观测一对多的情况会变成啥呢

这个时候也很容易发现规律

update会以test2数据集中的第二条观测进行更新

遇到第一条观测会更新一次

遇到第二条的时候会在更新一次

一直会更新到最后一次

...

update与merge还有一个语法区别

update只能俩个数据

merge可以多个

....

今天就这么多了,后续内容,敬请期待~

如果觉得好或者公众号有价值:请打赏我把~

打赏包括但不限于:转发,分享,推荐,赞赏本公众号或者文章,谢谢!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180907G1Z0EP00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券