1

嗨,我正在寻找一个 4 行的窗口,pvalues 两侧各有 2 行小于特定阈值,然后创建一个新的 data.table,其中包含有关这些行的特定字符的信息。

SNP pval  GO
1   0.9   A
2   0.8   C
3   0.4   A
4   0.3   D
5   0.9   L
6   0.02  L
7   0.6   L
8   0.1   G
9   0.6   P
10  0.8   E

从上面的示例数据中,查看 pval < 0.05 两侧的 2 行所需的输出将是。

GO
D
L
L
G

最终我想把它扩展到一个大的 data.frame 并查看多个 pval < 0.05 的 1000 行窗口

感谢您的任何帮助

4

1 回答 1

1

获取索引集pval<0.05很容易,问题是如何获取其中 2 个索引。一种可能性是:

> indices<-c(5,9,13,17,25)
> indices2<-sort(unique(as.vector(outer(indices,c(-2,-1,1,2),`+`))))
> indices2
 [1]  3  4  6  7  8 10 11 12 14 15 16 18 19 23 24 26 27

因此,在您的情况下将它们放在一起看起来像这样:

> dt[sort(unique(as.vector(outer(which(dt$pval<0.05),c(-2,-1,1,2),`+`)))),]
  SNP pval GO
4   4  0.3  D
5   5  0.9  L
7   7  0.6  L
8   8  0.1  G
于 2013-10-22T01:30:14.627 回答