Domanda

Ho 5 elementi ciascuno dei quali può assumere il valore di 1 o -1. Voglio generare una matrice che consiste di righe delle possibili combinazioni. L'ordine degli elementi non ha importanza e l'ordine delle combinazioni non importa. So che potrei fare questo meccanicamente, ma ho pensato che qualcuno deve conoscere una scorciatoia per la generazione di questa matrice. Mi scuso se questo è simile ad altre domande, ma nessuna delle soluzioni che ho trovato può essere applicato a questo particolare problema con le mie capacità di programmazione.

È stato utile?

Soluzione

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

Altri suggerimenti

Per generalizzare la risposta di Greg:

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

alternativi da pacchetto data.table è leggermente più veloce rispetto al expand.grid:

library(data.table)  
CJ(c(-1,1), c(-1,1), c(-1,1), c(-1,1), c(-1,1))
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top