2
У меня есть data.frame
, который состоит из линейных интервалов для каждого id
:линейных интервалов Объединить
df <- data.frame(id = c(rep("a",3),rep("b",4),rep("d",4)),
start = c(3,4,10,5,6,9,12,8,12,15,27),
end = c(7,8,12,8,9,13,13,10,15,26,30))
Я ищу для эффективной функции, которая объединит все пересекающиеся интервалы на каждую id
. Для df
результат плохо быть:
res.df <- data.frame(id = c("a","a","b","d","d","d"),
start = c(3,10,5,8,12,27),
end = c(8,12,13,10,26,30))
За что в конце концов я буду иметь возможность суммировать все объединенные интервалы на каждую id
, чтобы их общая длина:
sapply(unique(res.df$id), function(x) sum(res.df$end[which(res.df$id == x)]-res.df$start[which(res.df$id == x)]+1))
Это может быть полезно: http://stackoverflow.com/questions/27574775/is-it-possible-to-use-the-r-data-table-funcion-foverlaps-to-find-the-intersectio – thelatemail