I ont une data.frame avec début et de fin:rangées Collapse avec des plages de chevauchement
ranges<- data.frame(start = c(65.72000,65.72187, 65.94312,73.75625,89.61625),stop = c(79.72187,79.72375,79.94312,87.75625,104.94062))
> ranges
start stop
1 65.72000 79.72187
2 65.72187 79.72375
3 65.94312 79.94312
4 73.75625 87.75625
5 89.61625 104.94062
Dans cet exemple, les plages de la rangée 2 et 3 sont entièrement à l'intérieur de la plage comprise entre « début » sur la ligne 1 et arrêter le couloir 4. Ainsi, le chevauchement des gammes 1-4 doit être replié à une gamme:
> ranges
start stop
1 65.72000 87.75625
5 89.61625 104.94062
I essayé ceci:
mdat <- outer(ranges$start, ranges$stop, function(x,y) y > x)
mdat[upper.tri(mdat)|col(mdat)==row(mdat)] <- NA
mdat
A nd maintenant je dois juste comprendre comment combiner tous les vrais, mais pas sûr que ce soit la meilleure façon d'aller
ne semble pas trop facile. Avez-vous déjà regardé dplyr? Serait mon premier essai à résoudre. – Rockbar
J'ai essayé ceci: 'mdat <- externe (range $ start, range $ stop, fonction (x, y) y> x) mdat [supérieur.tri (mdat) | col (mdat) == row (mdat)] <- NA mdat' Et maintenant j'ai juste besoin de comprendre comment combiner tous les vrais, mais je ne sais pas si c'est la meilleure façon d'aller – Liza
qu'est-ce que vous définissez comme se chevauchant? – MJH