Reenmarcar la magia en data.frame [duplicar]

Esta pregunta ya tiene una respuesta aquí:

Resforme el marco de datos de tres columnas a la matriz (formato "largo" a "ancho") 5 respuestas

ctualmente estoy aprendiendo a trabajar con data.frame y estoy bastante confundido sobre cómo reordenarlos.

En este momento, tengo un data.frame que muestra:

columna 1: un nombre de la tiendacolumna 2: un productocolumn 3: el número de compras de este producto por esta tienda

o visualmente algo como esto:

+---+-----------+-------+----------+--+
|   | Shop.Name | Items | Product  |  |
+---+-----------+-------+----------+--+
| 1 | Shop1     |     2 | Product1 |  |
| 2 | Shop1     |     4 | Product2 |  |
| 3 | Shop2     |     3 | Product1 |  |
| 4 | Shop3     |     2 | Product1 |  |
| 5 | Shop3     |     1 | Product4 |  |
+---+-----------+-------+----------+--+

Lo que me gustaría lograr es la siguiente estructura "centrada en la tienda":

columna 1: un nombre de la tiendacolumn 2: Artículos vendidos para product1column 3: Artículos vendidos para product2columna 4: Artículos vendidos para el producto3 ...

Cuando no hay una línea para una tienda / producto específico (debido a que no hay ventas), me gustaría crear un 0.

+---+-------+-------+-------+-------+-------+-----+--+--+
|   | Shop  | Prod1 | Prod2 | Prod3 | Prod4 | ... |  |  |
+---+-------+-------+-------+-------+-------+-----+--+--+
| 1 | Shop1 |     2 |     4 |     0 |     0 | ... |  |  |
| 2 | Shop2 |     3 |     0 |     0 |     0 | ... |  |  |
| 3 | Shop3 |     2 |     0 |     0 |     1 | ... |  |  |
+---+-------+-------+-------+-------+-------+-----+--+--+

Respuestas a la pregunta(3)

Su respuesta a la pregunta