Ich habe zwei Datenrahmen:vergleichen data.frames mit unterschiedlicher Anzahl für Reihen
df1<- data.frame(POS=c(1, 2, 3, 4, 5),
A=c(0.2,0,0,0.8,0),
G=c(0,0.3,0,0.2,0.5),
T=c(0.4,0.7,1,0,0.5),
C=c(0.4,0,0,0,0))
df2<- data.frame(POS=c(1, 3, 4, 5, 6),
A=c(0.3,0,0.6,0,0),
G=c(0,0,0.4,0.7,1),
T=c(0.2,1,0,0.3,0),
C=c(0.5,0,0,0,0))
Ich mag die summierten quadrierten Differenzen für jeden PO
Das erste, was ich sind zwei Matrizen brauche, um von die gleichen Dimensionen. Wie füge ich eine Zeile für die fehlenden Positionen hinzu, die mit Nullen gefüllt sind?
Sobald ich die zwei Matrizen habe, mache ich (df1-df2)^2 gefolgt von einem Zeilensummen-Ansatz.
Zusammenfassend: Wie füge ich eine neue Zeile mit Nullen für die fehlenden Zeilen in jedem data.frame hinzu?
wie folgt aus:
POS A G T C
1 0.2 0.0 0.4 0.4
2 0.0 0.3 0.7 0.0
3 0.0 0.0 1.0 0.0
4 0.8 0.2 0.0 0.0
5 0.0 0.5 0.5 0.0
6 0.0 0.0 0.0 0.0
POS A G T C
1 0.3 0.0 0.2 0.5
2 0.0 0.0 0.0 0.0
3 0.0 0.0 1.0 0.0
4 0.6 0.4 0.0 0.0
5 0.0 0.7 0.3 0.0
6 0.0 1.0 0.0 0.0
Diese für das Beispiel funktioniert gegeben, aber ich habe Schwierigkeiten dies in meinen realen Daten zu implementieren. Ich bekomme Fehler im Zusammenhang mit dem "BY". 'Fehler in merge.data.table (Masse, evo $ POS, alle = TRUE, by.x =" POS ", by.y = 1): Für by.x ist ein nicht leerer Vektor von Spaltennamen erforderlich und by.y. " oder" Fehler in merge.data.table (Masse, evo $ POS, alle = TRUE, durch = "POS"): Elemente, die in 'by' aufgelistet sind, müssen gültige Spaltennamen in x und y sein ' –
Können Sie erklären, warum Sie' by = 1' wählen? Mein Verständnis der 'merge()' ist die Verwendung des Spaltennamens (d. H. POS) –