[R] for loop help please!

jim holtman jholtman at gmail.com
Fri Sep 10 18:36:47 CEST 2010


try this:

> x <- matrix(sample(25,25), 5)
> x
     [,1] [,2] [,3] [,4] [,5]
[1,]   12   24   14    3   20
[2,]   21    7    5   15   17
[3,]   11   10   22   16    9
[4,]    6   25    4    1   23
[5,]    2   19    8   13   18
> # save result in a list
> result <- lapply(2:nrow(x), function(.row){
+     rep(x[1,], times=x[.row,])
+ })
> result
[[1]]
 [1] 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 24
24 24 24 24 24 24 14 14 14 14 14  3  3
[36]  3  3  3  3  3  3  3  3  3  3  3  3  3 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20

[[2]]
 [1] 12 12 12 12 12 12 12 12 12 12 12 24 24 24 24 24 24 24 24 24 24 14
14 14 14 14 14 14 14 14 14 14 14 14 14
[36] 14 14 14 14 14 14 14 14  3  3  3  3  3  3  3  3  3  3  3  3  3  3
 3  3 20 20 20 20 20 20 20 20 20

[[3]]
 [1] 12 12 12 12 12 12 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24
24 24 24 24 24 24 24 24 24 14 14 14 14
[36]  3 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

[[4]]
 [1] 12 12 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 24 14
14 14 14 14 14 14 14  3  3  3  3  3  3
[36]  3  3  3  3  3  3  3 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20

>


On Fri, Sep 10, 2010 at 11:54 AM, alfredo <alfredotello at gmail.com> wrote:
>
> Hi Everyone,
>
> I have a 2-dim data.matrix(e.g., table1) in which row1 specifies a range of
> values. row2 - rown specify the number of times I want to replicate each
> corresponding value in row1. I can do this with the following function:
>
> rep(c(table1[1,]),c(table1[X,])) #where X would go from 2 - n.
>
> Now, I can do this manually by changing the values of X and save each
> resulting array/vector in an object, or write a for loop that will iterate
> through the rows and output a new data.matrix in which row1 - rown will
> correspond to the vectors generated by replicating the values of row1 "row2
> - rown" independent times from the original data.matrix with the rep
> function shown above. So far I have been unable to get the for loop right.
>
> Any help will be most appreciated! Thanks beforehand for your help.
>
> Best,
>
> A
> --
> View this message in context: http://r.789695.n4.nabble.com/for-loop-help-please-tp2534666p2534666.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem that you are trying to solve?



More information about the R-help mailing list