Cómo generar una matriz de combinaciones

Tengo 5 elementos, cada uno de los cuales puede tomar el valor de 1 o -1. Quiero generar una matriz que consta de filas de las posibles combinaciones. El orden de los artículos no importa y el orden de las combinaciones no importa. Sé que podría hacerlo mecánicamente, pero pensé que alguien debe conocer un atajo para generar esta matriz. Me disculpo si esto es similar a otras preguntas, pero ninguna de las soluciones que he encontrado se puede aplicar a este problema en particular con mis habilidades de progtwigción.

expand.grid(c(-1,1), c(-1,1), c(-1,1), c(-1,1), c(-1,1)) 

Para generalizar la respuesta de Greg:

 N <- 5 vec <- c(-1, 1) lst <- lapply(numeric(N), function(x) vec) as.matrix(expand.grid(lst)) 

La alternativa del paquete data.table es ligeramente más rápida en comparación con expand.grid :

 library(data.table) CJ(c(-1,1), c(-1,1), c(-1,1), c(-1,1), c(-1,1)) 
    Intereting Posts