2010-10-22 36 views
15

Her biri 1 veya -1 değerini alabilen 5 öğem var. Olası kombinasyonların satırlarından oluşan bir matris oluşturmak istiyorum. Maddelerin sırası önemli değil ve kombinasyonların sırası önemli değil. Bunu mekanik olarak yapabileceğimi biliyorum, ama birinin bu matrisi oluşturmaya yönelik bir kısayol bilmesi gerektiğini düşündüm. Bu, diğer sorulara benzerse özür dilerim, ancak bulduğum çözümlerin hiçbiri, programlama becerilerimle bu özel soruna uygulanamaz.Kombinasyon matrisi nasıl oluşturulur

data.table paketinden Alternatif biraz daha hızlı karşılaştırılır
N <- 5 
vec <- c(-1, 1) 
lst <- lapply(numeric(N), function(x) vec) 
as.matrix(expand.grid(lst)) 

cevap

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

Greg'in cevabı yaygınlaştırılması
5

expand.grid için:

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