Ich bin neu in R, und ich habe 2-Datenrahmen wie folgt vor:Vergleich von zwei Datenrahmen in R
df1
T_id U_id U_code score
A_0_1 UHJKI XPOS_hp 134
B_1_3 NBVFR LKJ_mm 543
C_9_0 TRFDA NBV_lp 80
D_9_1 KOIUA TRE_po 212
E_0_1 SDFRQ QAS_np 300
E_0_1 SDKIJ JIT_mx 160
F_0_1 JKOPA TOZ_po 79
df2
T_id U_id U_code score
A_0_1 UHJKI XPOS_hp 150
B_1_3 NBVFR LKJ_mm 520
C_9_0 TRFDG NBJ_po 90
D_9_1 KOIUA TRE_po 250
E_0_1 SDFRQ QAS_np 300
E_0_1 SDKIJ JIT_mx 160
F_0_1 LOLPO JUZ_ic 90
Ich möchte die Punktzahl von DF1 und DF2 für diese Einträge in DF1 vergleichen, die genau hat die
df$1score=df2$score
E_0_1 SDFRQ QAS_np 300
E_0_1 SDKIJ JIT_mx 160
df1$score > df2$score
B_1_3 NBVFR LKJ_mm 543
df1$score < df2$score
A_0_1 UHJKI XPOS_hp 150
D_9_1 KOIUA TRE_po 250
auch würde ich die Einträge von DF1 mag speichern, für die keine Übereinstimmung in df2 gefunden
: gleicheT_id, U_id and U_code
in DF2 und sie in drei Gruppen an den Bedingungen (
df1$score >df2$score, df1$score=df2$score, df$1score<df2score
) wie folgt basieren klassifizieren
No matches
C_9_0 TRFDA NBV_lp 80
F_0_1 JKOPA TOZ_po 79
Ich habe versucht, die folgenden R-Code
comparison=function(df1,df2)
{
df1_equal_df2=NULL
df1_greater_than_df2=NULL
df1_smaller_than_df2=NULL
no_match=NULL
if(df$T_id==df2$T_id && df1$U_id == df2$U_id && df1$U_code==df2$U_code && df1$score > df2$score)
{
df1_greater_than_df2=df$T_id
}
else if(df$T_id==df2$T_id && df1$U_id == df2$U_id && df1$U_code==df2$U_code && df1$score < df2$score)
{
df1_smaller_than_df2=df1$id
}
else if(df$T_id==df2$T_id && df1$U_id == df2$U_id && df1$U_code==df2$U_code && df1$score = df2$score)
{
df1_equal_df2=df$1
}
else
{
no_match=df$1
}
}
Aber die oben nicht funktioniert hat. Wie kann ich meine gewünschte Ausgabe erhalten? leite mich freundlicherweise
Warum Ihre Daten zuerst nicht zusammenführen? Dann sind alle anderen Operationen einfach. – Heroka