Under DataFrames.jl version 0.21.0 you can do:
julia> df1 = DataFrame("Criteria 1" => ["A","B","A","B"],
"Criteria 2" => [1, 2, 2, 1],
"Factor 1" => [75, 85, 60, 50])
4ร3 DataFrame
โ Row โ Criteria 1 โ Criteria 2 โ Factor 1 โ
โ โ String โ Int64 โ Int64 โ
โโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโค
โ 1 โ A โ 1 โ 75 โ
โ 2 โ B โ 2 โ 85 โ
โ 3 โ A โ 2 โ 60 โ
โ 4 โ B โ 1 โ 50 โ
julia> df2 = DataFrame("Criteria 1" => ["B","A"],
"Criteria 2" => [1, 2])
2ร2 DataFrame
โ Row โ Criteria 1 โ Criteria 2 โ
โ โ String โ Int64 โ
โโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโค
โ 1 โ B โ 1 โ
โ 2 โ A โ 2 โ
julia> rightjoin(df1, df2, on=["Criteria 1", "Criteria 2"])
2ร3 DataFrame
โ Row โ Criteria 1 โ Criteria 2 โ Factor 1 โ
โ โ String? โ Int64? โ Int64? โ
โโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโค
โ 1 โ B โ 1 โ 50 โ
โ 2 โ A โ 2 โ 60 โ
a more advanced pattern is the following
julia> gdf = groupby(df1, 1:2)
GroupedDataFrame with 4 groups based on keys: Criteria 1, Criteria 2
First Group (1 row): Criteria 1 = "A", Criteria 2 = 1
โ Row โ Criteria 1 โ Criteria 2 โ Factor 1 โ
โ โ String โ Int64 โ Int64 โ
โโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโค
โ 1 โ A โ 1 โ 75 โ
โฎ
Last Group (1 row): Criteria 1 = "B", Criteria 2 = 1
โ Row โ Criteria 1 โ Criteria 2 โ Factor 1 โ
โ โ String โ Int64 โ Int64 โ
โโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโค
โ 1 โ B โ 1 โ 50 โ
julia> gdf[NamedTuple(df2[1, :])]
1ร3 SubDataFrame
โ Row โ Criteria 1 โ Criteria 2 โ Factor 1 โ
โ โ String โ Int64 โ Int64 โ
โโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโค
โ 1 โ B โ 1 โ 50 โ
julia> gdf[NamedTuple(df2[2, :])]
1ร3 SubDataFrame
โ Row โ Criteria 1 โ Criteria 2 โ Factor 1 โ
โ โ String โ Int64 โ Int64 โ
โโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโโโค
โ 1 โ A โ 2 โ 60 โ
which allows you to do a lookup per row (if you wanted e.g. to do iteration).
Now related to package version. Pkg.update()
does not have to give you the result you expect. I have recently written blog posts here and here trying to explain the potential problems.
However, if you want to keep working in default project environment it is easiest to run add DataFrames@v0.21
command in Package Manager mode that will make sure you have a right package version (in general I also recommend reading this part of the manual).