У меня есть два фрейма данных: df_1 и df_2. Для каждого ключа в df_1 я хочу найти лучший Form_2, который соответствует Form_1 в df_2.
IF
Form_1 существует в df_2, а затем взять точное совпадение - For Например, ключ = B, Форма_1 = планшет, Форма_2 = планшет
В противном случае выберите совпадение наименьшей длины - например, ключ = D, Форма_1 = патч, ER и Form_2 = патч. Это самая короткая длина слова, соответствующая патчу, ER.
, если у Form_1 больше двух совпадений, используйте оба. Например, key = G имеет два совпадения в df_2 Form_2
Наконец, если совпадений нет, по умолчанию используется NA.
df_2=data.frame(Form_2=c("suspension","for suspension","tablet","tablet,tablet","patch","patch,IR","tablet,ER","Injection","Injection,Solution","liquid"))
df_1=data.frame(
key=c("A","B","C","D","E","F","G","H"),
Form_1=c("suspension","tablet","tablet,ER","patch,ER","tablet","Injection,Solution","liquid Injection",'see attachment'))
И вот как должен выглядеть мой результат:
df_out=data.frame(
key=c("A","B","C","D","E","F","G","G","H"),
Form_1=c("suspension","tablet","tablet,ER","patch,ER","tablet","Injection,Solution","liquid Injection","liquid Injection",'see attachment'),
Form_2=c("suspension","tablet","tablet,ER","patch","tablet","Injection,Solution","Liquid","Injection",NA)
)