我是 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
我想在 10 行 block 中旋转 pval
10 次,每次旋转都在 gene_symbol
和 Site_class
中提取与以下内容相关的信息pval
小于 1e-5。由此我希望看到不同的 gene_symbol
值出现,但是它们将在 block 内保留其初始结构,即如果重要的 p 值位于第一个 block 的第 7 行,它将位于第一次旋转的第 17 行,并与不同的 gene_symbol
相关联。感谢您的帮助。
最佳答案
获取您感兴趣的 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]
}
关于r - 10 行 block 中 p 值的循环改组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19286526/