首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >10行块中p值的循环洗牌

10行块中p值的循环洗牌
EN

Stack Overflow用户
提问于 2013-10-10 03:22:55
回答 2查看 90关注 0票数 1

我对R比较陌生,我试图写一个置换,用10块旋转我的p值。这是我的数据头。

代码语言:javascript
复制
> head(knockdown, n=10)
chrs position    pval gene_symbol  Site_Class
2L     4998 0.73842731     CG11023 UPSTREAM  
2L     4998 0.73842731      l(2)gl DOWNSTREAM
2L     5092 0.18879142     CG11023 UPSTREAM
2L     5092 0.18879142      l(2)gl DOWNSTREAM
2L     5095 0.15217914     CG11023 UPSTREAM
2L     5095 0.15217914      l(2)gl DOWNSTREAM
2L     5317 0.00000209     CG11023 UPSTREAM
2L     5317 0.05224209      l(2)gl DOWNSTREAM
2L     5372 0.64378453      l(2)gl DOWNSTREAM
2L     5372 0.64378453     CG11023 UPSTREAM

我想把pval在10排块中旋转10次,每次旋转时,在gene_symbolSite_class中提取与小于1e-5的pval相关的信息。从这一点,我希望看到不同的gene_symbol值通过,但是它们将保持它们的初始结构在块中,也就是说,如果重要p值位于第一个块的第7行,那么它将位于第一次旋转的第17行,并与一个不同的gene_symbol相关联。谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-10 03:54:17

获取您感兴趣的110 p值的索引

代码语言:javascript
复制
idx <- which(knockdown$pval < 1e-5)

旋转如下(我想我得到了那些1的正确值-- R是基于1的);访问新索引中的值,例如,

代码语言:javascript
复制
step <- 10000
for (i in seq_len(1000)) {
    idx <- ((idx + step - 1) %% nrow(knockdown)) + 1
    ## do something with these?
    knockdown$gene_symbol[idx]
}
票数 0
EN

Stack Overflow用户

发布于 2013-10-10 08:54:44

使用模块化除法将序列10长度块分成几组,然后返回符合pval标准的行:

代码语言:javascript
复制
knockdown <- rbind(knockdown, knockdown)
lapply( split(knockdown, 0:(nrow(knockdown)-1) %/% 10), 
       function(df) df[df$pval < 1e-5, ])
$`0`
  chrs position     pval gene_symbol Site_Class
7   2L     5317 2.09e-06     CG11023   UPSTREAM

$`1`
   chrs position     pval gene_symbol Site_Class
17   2L     5317 2.09e-06     CG11023   UPSTREAM
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19286526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档