Problema
Queremos obtener el producto cartesiano, todas las combinaciones posibles de varios vectores.
Solución
Además de los siguientes ejemplos puedes ver más en entradas relacionadas.
Dos vectores
- expand.grid
expand.grid(1:5, 1:5)
merge(1:5, 1:5)
library(sqldf)
df1 <- data.frame(a = 1:5)
df2 <- df1
sqldf("SELECT df1.a, df2.a FROM df1
CROSS JOIN df2")
x y
1 1 1
2 2 1
3 3 1
4 4 1
5 5 1
6 1 2
7 2 2
8 3 2
9 4 2
10 5 2
11 1 3
12 2 3
13 3 3
14 4 3
15 5 3
16 1 4
17 2 4
18 3 4
19 4 4
20 5 4
21 1 5
22 2 5
23 3 5
24 4 5
25 5 5
Más de dos vectores
- expand.grid.
a <- c('europe', 'asia')
b <- c('co2', 'temperature')
c <- c('min', 'max')
expand.grid(a, b, c)
Var1 Var2 Var3
1 europe co2 min
2 asia co2 min
3 europe temperature min
4 asia temperature min
5 europe co2 max
6 asia co2 max
7 europe temperature max
8 asia temperature max
Entradas relacionadas
- Prueba de ingenio de la Oficina de la Casa Blanca para Políticas de Ciencia y Tecnología
- Project Euler - Problema 4 en R
Referencias
No hay comentarios:
Publicar un comentario