Циклическая перетасовка p-значения в 10 рядах блоков

Я относительно новичок в R, и я пытаюсь написать перестановку, чтобы повернуть мои p-значения в блоках 10. Вот глава моих данных.

> 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 относящийся к pval которые меньше, чем 1e-5. От этого я бы ожидал увидеть различные gene_symbol values coming through, however they will have kept their initial structure within the block, ie if the significant p-value is located at row 7 in the first block, it will be located at row 17 in the first rotation and associated with a different gene_symbol, Спасибо за вашу помощь.

2 ответа

Решение

Получить индекс 110 р-значений, которые вас интересуют

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]
}

Используя деление по модулю, разбить на группы последовательных блоков по 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   UPSTREAM
Другие вопросы по тегам