I have this dataset -
print(df) object group 1 apple A 1 banana B 1 pear A 1 robot C print(df2) object group
From my comment: dplyr functions work on the whole column taken as a vector. Try
df %>% rowwise() %>% mutate(reference = length(df2[df2$object == object,]$object))%>% ungroup()
As you said, ungroup will be needed, unless you plan on doing further row-wise operations.
ungroup