[R] creating table with sequences of numbers based on the table

Dennis Murphy djmuser at gmail.com
Thu Mar 13 21:55:23 CET 2014


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 <smartpink111 at 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 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.




More information about the R-help mailing list