全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1322 1
2018-12-24
数据如下:
ChrStartEndS1S2S3S4
chr1

610908

610908

92.4

95.4

96.7

100

chr1

610916

610916

94.7

96.9

97.5

100

chr1

610932

610932

36.7

40

73.9

60

chr1

610963

610963

85.4

80

75.6

60

chr1

629882

629882

4

3.8

3.2

3.8

chr1

630017

630017

0

0

0

0

chr2

631860

631860

0.6

14.3

0.6

1.5

chr2

631933

631933

0.6

0

0.3

0.8

chr2

631969

631969

0.6

0

0.6

1.2

chr2

631979

631979

0

0

0.3

1.2

chr2

631996

631996

0

0

0.3

0.4

chr2

632011

632011

0

0

0

0.8

chr2

632023

632023

7.9

0

5.6

8

chr3

634024

634024

NA

0

0

0

chr3

634028

634028

NA

0

0

0

chr3

634047

634047

NA

0

0

0

chr3

727034

727034

96.6

93.3

100

100

chr3

727048

727048

100

100

100

100

chr3

727061

727061

89.7

100

100

100

chr3

727099

727099

100

100

100

100

我的目的是找到这样的区域:
在第一列相同的情况下,Start的距离和不超过150,并且在该区域内至少含有3个点,例如上面的结果就有3个区域
ChrStartEndS1S2S3S4
chr1

610908

610908

92.4

95.4

96.7

100

chr1

610916

610916

94.7

96.9

97.5

100

chr1

610932

610932

36.7

40

73.9

60

chr1

610963

610963

85.4

80

75.6

60

chr2

631933

631933

0.6

0

0.3

0.8

chr2

631969

631969

0.6

0

0.6

1.2

chr2

631979

631979

0

0

0.3

1.2

chr2

631996

631996

0

0

0.3

0.4

chr3

727048

727048

100

100

100

100

chr3

727061

727061

89.7

100

100

100

chr3

727099

727099

100

100

100

100


同时,各个区域内要满足以下条件:
每一行的4-7列的最大值不超过2,平均值不超过1
因此最后的结果是:
chr2

631933

631933

0.6

0

0.3

0.8

chr2

631969

631969

0.6

0

0.6

1.2

chr2

631979

631979

0

0

0.3

1.2

chr2

631996

631996

0

0

0.3

0.4

我最后想输出两个文件,一个格式跟上面这个表一样,另一个格式如下
ChrStartEndLengthsite_numberaverage
chr2

631933

631996

64

4

0.39375

也就是这个区域的起始位置和长度,以及这个区域内的点的数目和值的均值。

关于第一个输出文件,我的想法是用tidyverse:
复制代码
但是结果总是不对,并没有按照我想的那样按照区域过滤。。。。。关于第二个输出文件我就完全没有思路了

二维码

扫码加我 拉你入群

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

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

全部回复
2018-12-30 15:47:57
帮你顶顶帖子让更多人看到哈~~
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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