楼主: ygyxzjz
1300 4

[学习分享] 1 to n merge 的一个小技巧 [推广有奖]

  • 0关注
  • 1粉丝

初中生

52%

还不是VIP/贵宾

-

威望
0
论坛币
790 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
176 点
帖子
15
精华
0
在线时间
11 小时
注册时间
2009-11-21
最后登录
2016-3-9

楼主
ygyxzjz 发表于 2013-1-31 13:27:08 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
在数据处理中,很多时候都需要把一个只有一行数据的data merge到一个n行obs的data中去,然后进一步做计算处理,例如:

data one;
  input x y z;
  cards;
  1 2 3
  3 3 4
  ...
;
假设data one有上万行数据,其中会有extreme value,现在想分别算出x y z的1% 和99% quantile 以作为critical value进行删除或者truncate处理。计算quantile不难,可以用proc univariate。但是在进行删除或truncate的时候需要在一个data set里进行,这就需要把这一行的data set与之前上万行的data set merge起来。假设 data two 是含 1%和99% critical value的data set。 用下面这个小技巧即可:

data three;
if _N_=1 then set two;
  set one;
run;

merge成功!当然,除此之外还有很多种1 to n的 merge 方法,个人认为这个很简单。




  
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Merge 小技巧 Univariate quantile Critical 小技巧

已有 1 人评分经验 论坛币 收起 理由
webgu + 60 + 25 鼓励积极发帖讨论

总评分: 经验 + 60  论坛币 + 25   查看全部评分

沙发
GGOD 发表于 2013-1-31 14:11:46
That is a interesting topic.

藤椅
chenys625 发表于 2013-1-31 15:39:28
在进行删除或truncate的时候需要在一个data set里进行,这就需要把这一行的data set与之前上万行的data set merge起来.

生成各宏比较好吧 如果真是成千上万的话

板凳
ygyxzjz 发表于 2013-1-31 22:05:57
chenys625 发表于 2013-1-31 15:39
在进行删除或truncate的时候需要在一个data set里进行,这就需要把这一行的data set与之前上万行的data set ...
但是truncate也是根据data的分布情况而进行的,有的data分布很好,没有明显outlier,就不需要truncate,不过也可以自己定义条件再编macro。

报纸
chenys625 发表于 2013-2-1 09:47:07
ygyxzjz 发表于 2013-1-31 22:05
但是truncate也是根据data的分布情况而进行的,有的data分布很好,没有明显outlier,就不需要truncate,不 ...
把quantile付成宏,不就不用合并了么

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-1 14:13