s
의 가중 단계를 사용하여 n
주식 수에 대한 모든 가능한 포트폴리오 할당을 찾으려고합니다. 함수 expand.grid()
모든 변화를 계산하는데 사용되며, 서브 세트의 가중치는 100조건을 사용하여 expand.grid의 변형을 제한하는 방법은 무엇입니까?
문제 모든 변화에 대한 출력을 감소 rowSums()
을 사용하여 수행된다
이 방법은 작동하지 않음을 "큰"숫자. expand.grid()
이후에 하위 집합을 사용하는 것이 가장 좋은 방법은 아닙니다. 어떤 아이디어?
n <- 5 #number equities
s <- 20 #weighting steps
Ptf <- function(n, s){
m <- expand.grid(rep(list(seq(0, 100, s)), n))
subset(m, rowSums(m)==100)
}
Ptfs <- Ptf(n, s)
결과 : 어떤 도움이 정말 감사하겠습니다
> n <- 10 #number equities
> s <- 20 #weighting steps
>
...
>
> Ptfs <- Ptf(n, s)
Error: cannot allocate vector of size 461.3 Mb
:
head(Ptfs)
Var1 Var2 Var3 Var4 Var5
6 100 0 0 0 0
11 80 20 0 0 0
16 60 40 0 0 0
21 40 60 0 0 0
26 20 80 0 0 0
31 0 100 0 0 0
> tail(Ptfs)
Var1 Var2 Var3 Var4 Var5
4321 0 0 0 40 60
5186 20 0 0 0 80
5191 0 20 0 0 80
5221 0 0 20 0 80
5401 0 0 0 20 80
6481 0 0 0 0 100
주식 n <- 10
의 수를 증가는 오류 메시지를 전달 여기
감사 미키을이 작업을 수행 할 수 파티션-패키지는 내가 찾던 힌트이었다. –