Constructing a tibble from another tibble (without for loops?)
I would use a matrix multiplication. It is both efficient and leads to much shorter code, as you can see:

constructed_tbl &lt;- as.tibble(as.matrix(source_tbl) %*% table(col_conversion_tbl))