Перекрытие столбцов между двумя кадрами данных - PullRequest
0 голосов
/ 18 октября 2018

У меня есть фрейм данных (df), который мне нужно аннотировать:

locations I need to annotate

Столбцы местоположения содержат координату, которая должна находиться внутри гена, который нужно аннотировать.Это означает, что столбцы хромосом должны совпадать, и координата> начальная позиция гена и координата <конечная позиция гена. </p>

У меня также есть список возможных генов (gen): genes I want to use

Я хочу добавить еще один столбец в df: df $ Gene, который содержит имя гена.Несколько генов могут быть аннотированы в одном месте.У меня это работает очень медленно, но я теряюсь над тем, как сделать это быстрее.Кто-нибудь есть советы о том, как утвердить скорость аннотации?

genes <- list()
for(del_id in 1:nrow(df)) {
   gen_id <- which(gen$Chromosome == df[del_id,]$Chromosome & gen$Start <= df[del_id,]$location & gen$End >= df[del_id,]$location)
   genes[[del_id]] <- gen[gen_id, ]$Gene
}


df$Gene <- sapply(genes, function( x ) { ifelse( any( is.na(x) ), NA, paste( x, collapse = ',' ) ) } )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...