길이가 N 인 숫자 벡터 x가 있고 다음 세트의 집합 내 합계 벡터를 만들려고합니다. 최대 x 자의 가능한 모든 조합 각 조합의 요소. 나는 천천히 반복적 인 접근법을 사용했다. 내가 여기서 찾고있는 것은 루프를 사용하지 않는 방법이다.R 행 제한이있는 expand.grid
N이 ME (22 이상) 커질 같이 expand.grid 출력되고, 그러나 N = 5, M = 4
M <- 4
x <- 11:15
y <- as.matrix(expand.grid(rep(list(0:1), length(x))))
result <- y[rowSums(y) <= M, ] %*% x
와 다음 예 I이 고려 된 접근법을 고려 너무 크고 오류가 발생합니다 (위의 x를 x < - 11:55로 바꾸십시오). 이상적으로 전체 행렬을 구성하기 전에 행에 대한 제한을 허용하는 expand.grid 함수가있을 것입니다.이 행렬은 행렬 크기를 메모리 제한 내에서 유지할 수 있습니다.
큰 N에 문제를 일으키지 않고이를 달성 할 수있는 방법이 있습니까?
'11 : 15' 토큰 데이터 (@ EtienneMoerman의 최적화에 따라) 또는 일반적인 실제 데이터가 있습니까? 이 응용 프로그램은 무엇입니까? 2^45의 카디널리티를 처리하는 것은 드문 종류입니다. – smci