Как я могу найти и выделить кластеры значений в определенном диапазоне друг от друга в r или python? - PullRequest
0 голосов
/ 24 января 2019

У меня есть список чисел (все больше 10 000 000) , и я хочу найти кластеры чисел в пределах 5 000 000 друг от друга (они соответствуют столбцам на манхэттенском графике для Мутации SNP в генах).

Есть ли способ сделать кластерный анализ в списке, чтобы я мог написать файл, где: If [i]+1 < [i]+5,000,000.

Что это будет подсвечивать эти значения в файле? У меня есть файл Excel, но я могу изменить формат. Благодаря.

1 Ответ

0 голосов
/ 24 января 2019

Вы получите несколько потенциальных ответов здесь. Мне нравится пакет data.table, потому что он быстрый и имеет много полезных встроенных операторов. В этом случае мы можем использовать параметр shift() для сравнения между наблюдением i и наблюдением i + 1. Вы можете разбить это на несколько шагов, но объединение всей вашей логики в один ряд выглядит так:

library(data.table)

set.seed(1)
dt <- data.table(int = sample(10000000:100000000, 10000, replace = TRUE))

dt[, highlight := ifelse(shift(int,n = 1, type = "lead") < int + 5000000, "highlight", "no highlight")]
#show how many rows fit our criteria defined above
table(dt$highlight)
#> 
#>    highlight no highlight 
#>         5524         4475

Создано в 2019-01-24 пакетом представительство (v0.2.1)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...