[R] Odp: while( ) to get a vector until the sum of elements are <= X ?

Petr PIKAL petr.pikal at precheza.cz
Fri Jul 10 13:43:55 CEST 2009


Hi

r-help-bounces at r-project.org napsal dne 10.07.2009 12:07:03:

> I have a vector of values
> 
> 
> 
> X = seq(1:10)
> 
> 
> 
> I want to get another vector V of with sample (with replacement) of X 
but
> with a constrain:  V will have as much elements as those necessary to V 
sum
> exactly 10.
> 
> 
> 
> If the N-th value of V make the sum greater than 10, it's is subtracted 
with
> the difference to achieve the constrain.
> 
> 
> 
> I don't know how to achieve this. with a while?

Maybe.

X = seq(1:10)

fff <- function(x, threshold=10) {
v<- sample(X, replace=T)
v.<-cumsum(v)
logic <- v. <= threshold
difer <- 10-sum(v[logic])
if (difer>0) c(v[logic], difer) else v[logic]
}

Regards
Petr


> 
> 
> 
> ____________
> 
> Paulo E. Cardoso
> 
> 
> 
> 
>    [[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide 
http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.




More information about the R-help mailing list