On 28.01.2013 12:06, mary wrote:
> Hi,
> 
> I would like to replicate a sort of Montecarlo experiment:
> 
> I have to generate a random variable N(0,1) with 100 observations but I have
> to contaminate this values at certain point in order to obtain different
> vectors with different samples:

Hi,

tab<-function(N,n,E,L,a){
        for(i in 1:100){
                X1<-rnorm(N*(1-a),0,1)
                X2<-rnorm(N*(a),E,L)
                X_tab<-sample(c(X1,X2),n,replace=T)
        }
        return(X_tab)
}

l <- list(n = c(5,10,20), a=c(0.1,0.2,0.3), E=c(5,10),L=c(.01, .025, 1))

# translate permutation number in indices for rotating numbers, like in
# a code lock for a bike
#                           n a E L
# i.e. Permutation      #0: 0,0,0,0
#                       #1: 0,0,0,1
#                       #2: 0,0,0,2
#                       #3: 0,0,1,0
#                       #4: 0,0,1,1
# Note these indices start at 0 for the sake of easier calculation.
# you have to add +1 manually,
# then you get i.e. for permutation #4: n[1], a[1], E[2], L[2]
# n is the permutation number, li is a 'list' with your parameters (l)
permPar <- function(n,li)
{
        lengths<-sapply(li,length)      

        len.l <- length(lengths)
        len.l
        
        ind <- rep(0,len.l)
        names(ind) <- names(li)
        for(i in seq(len.l,1,-1)){
                ind[i] <- n %% lengths[i]
                n <-  n %/% lengths[i]
                if(n==0) break
        }
        if(n>0) stop("Index too big")
        return(ind)
}
# Number of possible permutations:
tl <- 1
for (i in 1:length(l)){
        tl <- tl*length(l[[i]])
}

# for each possible permutation:
# execute permPar(<counting index>,li=l)
# and swap columns and rows of the resulting matrix
t(
  sapply(1:tl-1, permPar, li=l)
)

this table od parameter indices can be used for acessing the parameters
in the list l

Good Luck,
Moritz

-- 
GnuPG Key: 0x7340821E

______________________________________________
R-help@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.

Reply via email to