[R] for loop help please!

Joshua Wiley jwiley.psych at gmail.com
Fri Sep 10 18:30:34 CEST 2010


Hi A,

Here is a little example that I believe does what you want.  I am not
quite sure how you want all the output in a new matrix, because as you
repeat each value is the first row varying numbers of times, you will
not have rows of equal length.  Although perhaps your data is setup so
that you can.

# Sample data
table1 <- matrix(1:16, ncol = 4)
table1 # look at it

# Using your code to create the first example
rep(table1[1,], table1[2,])

# Using apply() to go through every row of the matrix 'table1'
# except the first ([-1, ])
apply(table1[-1, ], 1, function(x) {rep(table1[1,], x)})

# Using a for loop to do the same
for(i in 2:nrow(table1)) {
  print(rep(table1[1, ], table1[i, ]))
}

# In general, I think apply() is prettier
# It is also easier to assign all the output to a list
# Compared to using a for loop

Best regards,

Josh

On Fri, Sep 10, 2010 at 8: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.
>



-- 
Joshua Wiley
Ph.D. Student, Health Psychology
University of California, Los Angeles
http://www.joshuawiley.com/



More information about the R-help mailing list