Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- joinAcross2[
- list1 : {__?AssociationQ},
- list2 : {__?AssociationQ},
- sameTest_,
- key : (_String | _Key),
- jspec : ("Inner" | "Outer" | "Left" | "Right") : "Inner"
- ] := Module[{
- vals1 = list1[[All, key]]
- },
- JoinAcross[
- list1,
- MapAt[
- Function[
- element,
- SelectFirst[vals1, sameTest[element, #] &, element]
- ],
- list2,
- {All, key}
- ],
- key,
- jspec
- ]
- ];
- In[208]:= joinAcross2[{<|a -> 1, b -> X|>}, {<|a -> 1., c -> Y|>}, Equal, Key[a]]
- Out[208]= {<|a -> 1, b -> X, c -> Y|>}
- Module[{dataset = list2},
- dataset[[All, key]] = Map[
- Function[element,
- SelectFirst[vals1, sameTest[element, #] &, element]
- ],
- dataset[[All, key]]
- ];
- dataset
- ]
Add Comment
Please, Sign In to add comment