Я хочу объединить два фрейма данных.Поэтому столбец Type
из Data
появляется в Values
.
DATA
Name Type Code
gabapentine Pharmaceutical 60142-96-3
Glyphosate Pesticide 1071-83-6
Guanylurea Pharmaceutical 141-83-3
hydrochlorthiazide Pharmaceutical 58-93-5
EDTA Industrial C. NA
Values
Name Value Code
gabapentine 0,2 60142-96-3
Glyphosate 1,8 1071-83-6
Urea 1,2 141-83-3
hydrochlorthiazide 0,5 58-93-5
EDTA 2,3 NA
Я хочу получить это
Name Value Code Type
gabapentine 0,2 60142-96-3 Pharmaceutical
Glyphosate 1,8 1071-83-6 Pesticide
Guanylurea 1,2 141-83-3 Pharmaceutical
hydrochlorthiazide 0,5 58-93-5 Pharmaceutical
EDTA 2,3 NA Industrial C.
Я попробовал варианты этот вопрос с merge
Но я получаю
Name Value Code Type
gabapentine 0,2 60142-96-3 Pharmaceutical
Glyphosate 1,8 1071-83-6 Pesticide
Urea 1,2 141-83-3 NA
hydrochlorthiazide 0,5 58-93-5 Pharmaceutical
EDTA 2,3 NA Industrial C.
Можно ли использовать оператор OR |
в функции слияния?Или в функции совпадения?Потому что я хочу сопоставить Names
, а если они не совпадают (как в случае с Guanylurea и Urea), то посмотрите в Codes
и, наконец, добавьте столбец Type
.
Возможно что-то вроде этого
Values$type = Data$type[match((Values$Name, Data$Name) | (Values$Code, Data$Code))]
или вот так
merge(Data, Values, by=c("Name" | "Code")))