全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
2686 4
2018-01-05
有下面字段规则的股票数据集,但序号中间有漏号,有些数据集序号完整,确定的是open 和 oi 序号是一一对应关系。
date open1 oi1 open2 oi2 open4 oi4 open5 oi5 open6 oi6 open9 oi9 open10 oi10 open12 oi12

想实现的结果是,每一行先比较   oi1 oi2 oi4 oi5 oi6 oi9 oi10 oi12 中排名最大的作为一个新列max1,但值为对应的open值,排名第二的作为第二个新列max2,值为对应的open值。就是 oi只是用来做大小判断,新列的值是对应的open值。
谢谢!


二维码

扫码加我 拉你入群

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

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

全部回复
2018-1-5 10:58:05
1、先解答一个问题,即当 oi1 oi2 oi4 oi5 oi6 oi9 oi10 oi12 中排名最大的 有相同的值,那么对应的取那个 open 值?
2、确定后,可以使用 format 作为映射,但前提必须是  oi1 oi2 oi4 oi5 oi6 oi9 oi10 oi12 存在唯一值,才能拿到对应的open值,
3、采用 put, max(oi1 oi2 oi4 oi5 oi6 oi9 oi10 oi12 ) 处理即可
二维码

扫码加我 拉你入群

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

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

2018-1-5 12:32:57
流水不朽 发表于 2018-1-5 10:58
1、先解答一个问题,即当 oi1 oi2 oi4 oi5 oi6 oi9 oi10 oi12 中排名最大的 有相同的值,那么对应的取那个  ...
1,排名最大有相同的值,取oi序列N最大对应的值。因为是期货行情数据,存在换月,故oi几乎不存在一样的。
2,当列变量数量较少时,max(oi1 -oi12)比较方便。如果有几千个变量,这个模式还是不可取。
二维码

扫码加我 拉你入群

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

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

2018-1-5 13:40:03
wanwanle2 发表于 2018-1-5 12:32
1,排名最大有相同的值,取oi序列N最大对应的值。因为是期货行情数据,存在换月,故oi几乎不存在一样的。 ...
第一点易处理,按照你说的第二点,几千个变量?你确定你要处理这么多的变量?有表能支持几千个变量?
二维码

扫码加我 拉你入群

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

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

2018-1-5 13:47:24
wanwanle2 发表于 2018-1-5 12:32
1,排名最大有相同的值,取oi序列N最大对应的值。因为是期货行情数据,存在换月,故oi几乎不存在一样的。 ...
这样,就按照你说的几千个变量处理,
1、把变量名都提取 使用 proc contents  和 proc sql
2、把变量名 放到 array 数组里面 如:_var_
3、再使用 max( _var_1 - _var_2000)

按这个方式处理试试
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群