我对R比较陌生,我试图写一个置换,用10块旋转我的p值。这是我的数据头。
> 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_symbol和Site_class中提取与小于1e-5的pval相关的信息。从这一点,我希望看到不同的gene_symbol值通过,但是它们将保持它们的初始结构在块中,也就是说,如果重要p值位于第一个块的第7行,那么它将位于第一次旋转的第17行,并与一个不同的gene_symbol相关联。谢谢你的帮助。
发布于 2013-10-10 03:54:17
获取您感兴趣的110 p值的索引
idx <- which(knockdown$pval < 1e-5)旋转如下(我想我得到了那些1的正确值-- R是基于1的);访问新索引中的值,例如,
step <- 10000
for (i in seq_len(1000)) {
idx <- ((idx + step - 1) %% nrow(knockdown)) + 1
## do something with these?
knockdown$gene_symbol[idx]
}发布于 2013-10-10 08:54:44
使用模块化除法将序列10长度块分成几组,然后返回符合pval标准的行:
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 UPSTREAMhttps://stackoverflow.com/questions/19286526
复制相似问题