Contamos con tu apoyo para extender nuestros tutoriales sobre las ciencias informáticas.
Solución:
Utilice el cruce desde el tidyr
paquete:
x <- data.frame(x=c("a","b","c"))
y <- data.frame(y=c(1,2,3))
crossing(x, y)
Resultado:
x y
1 a 1
2 a 2
3 a 3
4 b 1
5 b 2
6 b 3
7 c 1
8 c 2
9 c 3
Disculpas a todos: el siguiente ejemplo no no parecen funcionar con data.frames o data.tables.
Cuando x e y son base de datos tbl
s (tbl_dbi
/ tbl_sql
) ahora también puedes hacer:
full_join(x, y, by = character())
Agregado a dplyr a fines de 2017, y también se traduce a un CROSS JOIN
en el mundo de DB. Se ahorra la molestia de tener que introducir las variables falsas.
Si necesitamos un tidyverse
salida, podemos usar expand
desde tidyr
library(tidyverse)
y %>%
expand(y, x= x$x) %>%
select(x,y)
# A tibble: 9 × 2
# x y
#
#1 a 1
#2 b 1
#3 c 1
#4 a 2
#5 b 2
#6 c 2
#7 a 3
#8 b 3
#9 c 3
valoraciones y comentarios
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)