Подтвердить что ты не робот

Как создать матрицу комбинаций

У меня есть 5 элементов, каждый из которых может принимать значение 1 или -1. Я хочу создать матрицу, состоящую из строк возможных комбинаций. Порядок предметов не имеет значения, и порядок комбинаций не имеет значения. Я знаю, что могу сделать это механически, но я подумал, что кто-то должен знать ярлык для создания этой матрицы. Я прошу прощения, если это похоже на другие вопросы, но ни одно из найденных нами решений не может быть применено к этой конкретной проблеме с моими навыками программирования.

4b9b3361

Ответ 1

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

Ответ 2

Чтобы обобщить ответ Грега:

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

Ответ 3

Альтернатива пакета data.table немного быстрее по сравнению с expand.grid:

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