[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