I think this'll be way simpler and also faster:

ans <- data.frame(pop = rep.int(tab$pop, tab$Freq), ind=sequence(tab$Freq))

Arun

From: Dennis Murphy djmu...@gmail.com
Reply: Dennis Murphy djmu...@gmail.com
Date: March 13, 2014 at 9:57:20 PM
To: arun smartpink...@yahoo.com
Cc: R help r-help@r-project.org
Subject:  Re: [R] creating table with sequences of numbers based on the table  

Less coding with plyr:  

tab <- read.table(text="pop Freq  
1 1 30  
2 2 25  
3 3 30  
4 4 30  
5 5 30  
6 6 30  
7 7 30",sep="",header=TRUE)  

# Function to do the work on each row  
f <- function(pop, Freq) data.frame(ind = seq_len(Freq))  

library(plyr)  
u <- mdply(tab, f)[, -2]  

Dennis  

On Thu, Mar 13, 2014 at 8:01 AM, arun <smartpink...@yahoo.com> wrote:  
> Hi,  
> Try:  
> Either  
>  
> tab <- read.table(text="pop Freq  
> 1 1 30  
> 2 2 25  
> 3 3 30  
> 4 4 30  
> 5 5 30  
> 6 6 30  
> 7 7 30",sep="",header=TRUE)  
>  
> indx <- rep(1:nrow(tab),tab$Freq)  
> tab1 <- 
> transform(tab[indx,],ind=ave(seq_along(indx),indx,FUN=seq_along))[,-2]  
> #or  
> tab2 <- transform(tab[indx,],ind=unlist(sapply(tab$Freq,seq)))[,-2]  
> identical(tab1,tab2)  
> #[1] TRUE  
> #or  
> tab3 <- transform(tab[indx,], ind= 
> with(tab,seq_len(sum(Freq))-rep(cumsum(c(0L,Freq[-length(Freq)])),Freq)))[,-2]
>   
> identical(tab1,tab3)  
> #[1] TRUE  
>  
> A.K.  
>  
>  
> I have a problem with transfering one table to another automatically. From 
> table like this:  
>  
>> tab  
> pop Freq  
> 1 1 30  
> 2 2 25  
> 3 3 30  
> 4 4 30  
> 5 5 30  
> 6 6 30  
> 7 7 30  
>  
> I want to use number of individuals (freq) and then in next  
> table just list them with following numbers (depending on total number  
> of individuals)  
> Like this:  
> in  
> pop ind  
>  
> 1 1  
> 1 2  
> 1 3  
> 1 4  
> . .  
> . .  
> 1 30  
> 2 1  
> 2 2  
> 2 3  
> 2 4  
> . .  
> 2 25  
> 3 1  
> 3 2  
> . .  
> . .  
>  
> How can i do it? I think i have to use loops but so far I failed.  
> Thank you in advance,  
> Best,  
> Malgorzata Gazda  
>  
> ______________________________________________  
> R-help@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.  

______________________________________________  
R-help@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.  

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to