Jeanna -
I can't imagine how you could solve this problem with a
loop, but here's one way to solve it using R:
First, I'll create a data frame with a family variable:
> x = data.frame(family = rep(1:20,sample(2:5,20,replace=TRUE)))
Next, I'll number each family member within each family:
> x$seq = ave(x$family,x$family,FUN=seq)
Now I'll choose a random number within each family:
> x$use = ave(x$family,x$family,FUN=function(x)sample(1:length(x),1))
Finally, I'll select the family member whose sequence number
matches the random number:
> answer = subset(x,seq == use)
Hope this helps. Take a look at the help page for the ave function
to understand how it works.
- Phil Spector
Statistical Computing Facility
Department of Statistics
UC Berkeley
spector at stat.berkeley.edu
On Tue, 24 May 2011, Jeanna wrote:
> I have a data table with one column that indicates families, and subsequent
> columns with other characteristics. I want to randomize one member of the
> family to a separate table. My approach is to count the number of members,
> set up a random number generator, and assign the family member based on
> where they fall within the random number spectrum.
>
> Is there a way to count the number of family members as I loop through the
> whole table?
>
> Something like this:
> for (j in 1:15){
> if (x$family[j] == x$family[j+1]){
> count = count +1
> (which doesn't work)
>
> as I do the larger:
> for (i in 2:nrow(x.tab)){
>
>
> --
> View this message in context:
http://r.789695.n4.nabble.com/Count-of-rows-while-looping-through-data-tp3547949p3547949.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.
>