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 respuestasctualmente 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 tiendao 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 | ... | | |
+---+-------+-------+-------+-------+-------+-----+--+--+