Ich habe einen Datenrahmen mit drei Anfangsspalten: ID, Start- und Endpositionen. Der Rest der Spalten sind numerisch chromosomal Positionen, und es sieht wie folgt aus:Wie finde ich Spalten, die zu einem bestimmten Bereich passen (pro Individuum) und addiere 1, sonst 0, mit R
ID start end 1 2 3 4 5 6 7 ... n
ind1 2 4
ind2 1 3
ind3 5 7
Was ich will, ist die leeren Spalten ausfüllen (1: n) basierend auf dem Bereich für jeden einzelnen (Start: Ende). Zum Beispiel geht in der ersten Person (ind1) der Bereich von Positionen 2 nach 4, dann werden diejenigen Positionen, die zu dem Bereich passen, mit eins (1) ausgefüllt, und diese Positionen außerhalb des Bereichs mit Null (0). Um zu vereinfachen, sollte die gewünschte Ausgabe wie folgt aussehen:
ID start end 1 2 3 4 5 6 7 ... n
ind1 2 4 0 1 1 1 0 0 0 ... 0
ind2 1 3 1 1 1 0 0 0 0 ... 0
ind3 5 7 0 0 0 0 1 1 1 ... 1
Ich werde jeden Kommentar zu schätzen wissen.
Danke !, es funktionierte ganz gut, die einzige zusätzliche Sache war sicherzustellen, dass Start- und Endwerte mit der Reihenfolge übereinstimmen. –