Mein Datenrahmen ist:R - eine Spalte von Werten anderer Datenrahmen mit Bedingungen hinzufügen
dataMDS <- data.frame(FID=c(1,1), IID=c("CD03577","50016"), SOL=c(0,0), C1=c(0.00332472,-0.00154285))
> dataMDS
FID IID SOL C1
1 1 CD03577 0 0.00332472
2 1 50016 0 -0.00154285
Ich mag eine neue Spalte plates
mit Werten von 2 anderen Datenrahmen hinzuzufügen:
platesRAC <- data.frame(V1=c(1,1), V2=c("CD03577","CD0371"), V3=c("2011-01-12_RAC1","2011-01-27_RAC5"))
> platesRAC
V1 V2 V3
1 1 CD03577 2011-01-12_RAC1
2 1 CD0371 2011-01-27_RAC5
platesDESIR <- data.frame(V1=c(1,1,1), V2=c("50015","50016","50017"), V3=c("2011-11-23_DESIR9","2011-11-23_DESIR9","2011-11-23_DESIR8"))
> platesDESIR
V1 V2 V3
1 1 50015 2011-11-23_DESIR9
2 1 50016 2011-11-23_DESIR9
3 1 50017 2011-11-23_DESIR8
I möchte den Wert in V3 von platesRAC
OR platesDESIR
wenn V2 == IID
erhalten und diesen Wert in einer neuen Spalte plates
in dataMDS
hinzufügen.
Ich habe versucht, mit merge:
new <- merge(x = dataMDS, y = platesRAC, by.x = "IID", by.y = 'V2', all = TRUE)
FID IID SOL C1 V1 V3
1 1 CD03577 0 0.00332472 1 2011-01-12_RAC1
2 1 50016 0 -0.00154285 NA <NA>
Und natürlich habe ich Werte NA weil IID 50016
in platesDESIR
und nicht in platesRAC
ist. Ich weiß nicht, wie man ein OR macht keine NA-Werte haben.
Auch ich will nicht die V1
Spalte nach dem Zusammenführen, sondern nur die V3
Spalte in plates
Die Ergebnisse umbenennen möchte ich haben mag:
FID IID SOL C1 plates
1 1 CD03577 0 0.00332472 2011-01-12_RAC1
2 1 50016 0 -0.00154285 2011-11-23_DESIR9
Vielen Dank für jede Hilfe
versuchen mit 'verschmelzenden y = rbind (platesRAC, platesDESIR)' – sirallen
Sie bitte Ihre Beispiele reproduzierbar machen und erwartete Ausgabe hinzufügen. Dies erleichtert es anderen sehr, Ihnen zu helfen – Sotos
Es funktioniert nicht mit 'rbind', weil meine Datenrahmen unterschiedliche Längen haben, also habe ich auch NA-Werte auf diese Weise. Ich habe Code hinzugefügt, um meine Datenframes und das Ergebnis zu reproduzieren, danke für den Rat. – Elysire