[R] Replace a for loop with a function

Eekhout, I. i.eekhout at vumc.nl
Mon Sep 19 17:16:17 CEST 2011


Hi all, 

I would like to replace the for loop in the code below with a function
to improve the speed and to make the script more efficient. 
The loop creates a vector of integers (x) with the probability of f for
each integer.
The length of f is variable, but sums to 1. 
I tried to use a function with optional arguments which did not work.

Here is the code:

f <- data.matrix(c(0.5,0.15,0.35))
u <- runif(50) 
x <- data.matrix(rep(1, n)) 
fc <- 0
	for(i in 1:length(f))	{
		fc <- fc + f[i]         
		cf <- ifelse(u>fc,1,0)
		x <- x + cf
	}
x

Can anyone help me with this translation?
Thanks in advance, 

Iris



More information about the R-help mailing list