• A join is the operation of joining. Joins can be classified by several criteria:
    • is the information of data frame y included in the result? (mutating vs filtering joins)
    • what happens with non-matching rows? (inner vs outer joins / semi-join vs anti-join)
    • how are key matching conditions defined? (equality vs inequality vs no restrictions)