Я новичок в R и у меня есть 2 кадра данных, как следующее:Сравнение двух кадров данных в 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
Я хотел бы сравнить оценку df1 и df2 для этих записей в df1, который имеет точно же T_id, U_id and U_code
в df2 и классифицировать их на 3 группы в зависимости от условий (df1$score >df2$score, df1$score=df2$score, df$1score<df2score
), как следующее:
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
Кроме того, я хотел бы хранить записи о df1, для которых не найдено в df2
No matches
C_9_0 TRFDA NBV_lp 80
F_0_1 JKOPA TOZ_po 79
Я попытался следующий код R
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
}
}
но выше не работало. Как я могу получить желаемый результат. Просьба направлять меня
Почему бы не объединить свои данные в первую очередь? Тогда все остальные операции легки. – Heroka