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.