arun
2014-Feb-22 02:05 UTC
[R] for loop with multiple conditions in R (e.g. for(i in x & j in y)
Hi, May be this helps: res.i <- NULL ?for(i in seq_along(x)){ res.i <- c(res.i,x[i]-y[i])} #or using your nested loop: res.ij <- NULL ?for(i in seq_along(x)){ ?for(j in seq_along(y)){ ?if(i==j){ ?res.ij <- c(res.ij,x[i]-y[j]) ?} ?}} identical(x-y,res.i) #[1] TRUE identical(res.i,res.ij) #[1] TRUE A.K. I need a for loop that pulls data from two different vectors. For example, suppose that my vectors were x <- c(1,2,3) y <- c(4,5,6) and I wanted a loop that woul take i in x and subtract it from j in y how would I do it? (i.e. 1-4,2-5,3-6). Note: I realize that for this silly example there are much better ways to do this than using a for loop, but the actual script that I am working with is much more complicated and really does needs to be a for loop, so if you would humor me and tell me how to write a loop for this example rather than recommending a better way to solve the example, I would appreciate it. I've tried the following line of code, but, as expected, it subtract each value of i from each value of j, which is not what I want, I want the first value of i subtracted from the first value of j, the second value of i from the second value of j, etc. res.i <- c(NULL) for(i in x){ ? for(j in y){ ? sol.i <- i-j ? res.i <- c(res.i,sol.i)} ? print(res.i)} thanks!