Vergleicht zwei Spalten in einem Datenrahmen über viele Zeilen hinweg

8

Ich habe einen Datenrahmen, mit dem ich arbeite, in dem ich einen Datenpunkt Genotype mit zwei Referenzen S288C und SK1 vergleichen möchte. Dieser Vergleich wird für viele Zeilen (100+) des Datenrahmens durchgeführt. Hier sind die ersten Zeilen meines Datenrahmens:

%Vor%

Als Endprodukt identifiziert Id eine Zeichenfolge aus 1 (S288C) und 0 (SK1), je nachdem, auf welche der Referenzen der Datenpunkt passt. Also im obigen Beispiel id eine Ausgabe von 00001 da alle außer der letzten Übereinstimmung SK1.

    
Sam Globus 04.10.2011, 19:37
quelle

1 Antwort

13

Ein geschachtelter ifelse sollte es tun (werfen Sie einen Blick auf help(ifelse) für die Verwendung):

%Vor%

Mit diesen Testdaten:

%Vor%

Wir bekommen:

%Vor%

( Hinweis: Wenn Sie Probleme damit haben, sollten Sie sicherstellen, dass die Spalten Vektoren sind und nicht von R als Faktoren behandelt werden ... eine einfache for-Schleife sollte genügen es: for (i in 1:ncol(dat)){dat[,i]=as.vector(dat[,i])} ).

    
user554546 04.10.2011, 19:56
quelle

Tags und Links