作者cawaiilulu (across)
看板Statistics
标题Fw: [徵求] 一题资料库程式 很简单的
时间Fri Jun 19 11:05:42 2015
我有两个table
A是 n*6 B是 m*6
那6个 column 分别是 ID v1-v5
要作下列工作
A每次出一row 跟B m个row v1-v5 一一比较
然後要把A比B大的个数算出来 最後找出m次比较最大值 output到 一个新table C
所以 C有 n*2 (id num_大)
id1 0
id2 4
这样
我写了一个 就是每次 A出第一row 跟B每row比 等於一次create m*7 那麽大的table
然後找出 最大值 接着删掉 已经比完的id 再回到A出第一行row 这样循环
跑n=10万 row m=50万 row 一小时都还跑不完
感觉应该有更快的写法
请大家赐教 怎麽构思更快的写法 我是用SAS(有的话就太完美)
但其他语言也没关系 主要是想构思
--
键盘小弟........
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 74.135.36.127
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Wanted/M.1434683053.A.9F9.html
※ 编辑: cawaiilulu (74.135.36.127), 06/19/2015 11:08:07
1F:→ MOONY135: ...这样的描述法真的非常难懂... 06/19 11:13
2F:→ MOONY135: 所以是A里面某行的V1~V5都去比B里面所有行的V1~V5都大 06/19 11:14
3F:→ MOONY135: 的来OUTPUT到C吗 06/19 11:14
4F:→ MOONY135: if A.v1>B.v1 and A.v2>B.v2 and A.v3>B.v3....etc? 06/19 11:18
第二行是对的
然後 从比较值中找出最大的row (例如有80row 都是5个皆A比B大)
output到C (包含 ID 80) 这样
5F:→ MOONY135: V1~V5都是数字吗? 每一列的数字都是固定位数? 06/19 11:31
6F:→ MOONY135: EX V1里面的值 都不会大於99这样 06/19 11:31
对 这都没问题 我已经写好了 主要是我的写法跑很慢....
只要构思一个让这个作法比较快的写法 资料值不用担心 谢谢
7F:→ MOONY135: 你之前的语法是怎样写的 跟我写的依样 IF AND AND? 06/19 11:32
我用ARRY + IF THEN
8F:→ mimi9126: 如果A=(1,1,1,1,1,1), B=(1,0,0,0,0,0),(2,0,0,0,0,0) 06/19 11:56
9F:→ mimi9126: 那output应该是什麽? (1,2)? (1,5)? 06/19 11:57
output是 A1 1
应该是这样说 A有n row B有m row 每次A出一行 跟B m个一行一行比过
然後 假设m=4 比的结果是
A1 3 (表示A1 跟B1比 v1-v5 有3个比较大)
A1 2
A1 3
A1 1
output 结果 C
A1 2 (找到两个"最大值" (最大值=3))
10F:→ mimi9126: 那row里面每个值有范围吗,有的话可能要用其他方向做 06/19 12:11
没关系 这个都不用管 假设就 都两位以下数字 我主要是想问怎麽写比较"快"
※ 编辑: cawaiilulu (74.135.36.127), 06/19/2015 12:13:19