免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12345下一页
最近访问板块 发新帖
查看: 10381 | 回复: 45
打印 上一主题 下一主题

差异筛选问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-07-24 22:25 |只看该作者 |倒序浏览
本帖最后由 newfinder 于 2014-07-24 22:56 编辑

各位友人,小弟现在有一个棘手的问题,还请大家帮帮忙。

假如现在有两个数据集,data1.txt和data2.txt,
data1.txt和内容如下:
range1:1-6
range1:7-14
range1:15-18
range1:19-23
range2:2-7
range2:8-11
range2:12-16
range2:18-20
range3:...

data2.txt的内容如下:
range1:2-4
range1:6-9
range1:10-17
range2:1-6
range2:7-12
range2:13-14
range2:17-19
range3:....

想筛选出两个数据集中的差异区域,差异的条件设定为:如果交集的范围(差值)小于等于2的话,即为差异区域。但若一个数据集中的一段区域完全
在另一个数据集中相应的区域中,即是子集关系的话,但共同的范围小于等于2,那也不认为是差异区域。

比如data2.txt中的range1:2-4,它与data1.txt中的range1:1-6是子集关系,所以即便共同的范围是2-4,差值等于2,也认为它们不是差异区域。而像data1.txt中
的range1:7-14与data2.txt中的range1:6-9的交集为7-9,即为一个差异区域,但与range1:10-17的交集为10-14,所以这两个不算是差异区域。

因此,如果按照这样的推理的话,上面的两个数据集的差异区域应该为:
data1_diff.txt:
range1:15-18
range1:19-23
range2:18-20

data2_diff.txt:
range1:6-9
range2:17-19

而共同的则为data_comm.txt:
range1:1-6  2-4
range1:7-14  10-17
range2:2-7  1-6
range2:8-11  7-12
range2:12-16  13-14

以上是我的问题,谢谢大家。

论坛徽章:
26
2015亚冠之胡齐斯坦钢铁
日期:2015-06-25 21:40:202015亚冠之柏斯波利斯
日期:2015-08-31 17:03:192015亚冠之柏斯波利斯
日期:2015-11-07 13:10:00程序设计版块每日发帖之星
日期:2015-11-10 06:20:00每日论坛发贴之星
日期:2015-11-10 06:20:00程序设计版块每日发帖之星
日期:2015-11-26 06:20:00程序设计版块每日发帖之星
日期:2015-12-02 06:20:00黄金圣斗士
日期:2015-12-07 17:57:4615-16赛季CBA联赛之天津
日期:2015-12-23 18:34:14程序设计版块每日发帖之星
日期:2016-01-02 06:20:00程序设计版块每日发帖之星
日期:2016-01-06 06:20:00每日论坛发贴之星
日期:2016-01-06 06:20:00
2 [报告]
发表于 2014-07-25 09:31 |只看该作者
lz,麻烦了
现在有一个棘手的问题,
问题 表示没看出有啥规律,

不知道如何下手.
data1_diff.txt:
data2_diff.txt:
data_comm.txt:

以上是我的问题,
谢谢lz

论坛徽章:
0
3 [报告]
发表于 2014-07-25 11:07 |只看该作者
回复 2# substr函数
其实就是想找出data1和data2的交集和差异。但这个交集有条件,就是如果交集的范围大于2才算是交集,小于等于2就不算是交集。另外,如果一个数据集中有一段被另一个数据集包含,即使是范围小于等于2也算是共同的,不算差异。

也就是说要筛选两个数据集中的共同范围:交集范围大于2以及互为子集的区域;差异范围:除去共同范围的区域
所以应该有三个输出文件:
data1的差异区域输出为data1_diff.txt:……
data2的差异区域输出为data2_diff.txt:……
二者共同的差异区域输出为data_comm.txt:……

不知道我这样描述,有没有表达清楚我的意思。
   

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
4 [报告]
发表于 2014-07-25 12:24 |只看该作者
小弟,
我想学习下这方面的知识,有比较好的书可以推荐一下?
谢谢。{:2_172:}

回复 1# newfinder


   

论坛徽章:
0
5 [报告]
发表于 2014-07-25 20:33 |只看该作者
回复 4# pitonas
???什么意思呢?是说perl方面的书吗,我也只是个菜鸟,很多都不会的

   

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
6 [报告]
发表于 2014-07-25 21:44 |只看该作者
是说差异筛选方面的书~ {:2_172:}
回复 5# newfinder


   

论坛徽章:
0
7 [报告]
发表于 2014-07-25 21:59 |只看该作者
回复 6# pitonas
呃……
这个……
没有呀……
有专门讲这方面的书吗?

   

论坛徽章:
5
丑牛
日期:2014-01-21 08:26:26卯兔
日期:2014-03-11 06:37:43天秤座
日期:2014-03-25 08:52:52寅虎
日期:2014-04-19 11:39:48午马
日期:2014-08-06 03:56:58
8 [报告]
发表于 2014-07-25 22:34 |只看该作者

子集关系的话:
共同的范围小于等于2,那也不认为是差异区域。
但共同的范围 > 2 : 那是差异区域?
回复 7# newfinder

论坛徽章:
0
9 [报告]
发表于 2014-07-25 23:46 |只看该作者
回复 8# pitonas
不是的,大侠。
差异区域是范围小于等于2
共同区域是范围大于2
但如果是子集的话,比如4-6是3-7的子集,虽然共同的范围只有2,但把它界定为共同区域

   

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
10 [报告]
发表于 2014-07-26 01:39 |只看该作者
楼主,我已经写出来了,明天优化一下再发出来…
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP