Hi, May be this helps: var1 <- ave(seq_along(fam),fam,FUN=length) names(var1) <- fam var1 #2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 #4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
#or table(fam)[as.character(fam)] #fam #2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 #4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 fam1 <- c(fam,2) var2 <- table(fam1)[as.character(fam1)] names(dimnames(var2)) <- NULL var2 #2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5 2 #5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 5 A.K. fam <- sort(rep(2:5, 4)) I want to create a new variable of the same length as fam, that stores the number of observations of each value. Another way to think about this would be like table(fam) but with the results of table(fam) linked to each record. I tried: for (i in unique(fam)) { num <- sum(fam == i) } but it doesn't work, I think because of the i being the value itself rather than a handle? Idk. How would I do this? Thank you :) ______________________________________________ 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.