On 10/16/2008 1:27 AM, Lijiang Guo wrote: > Dear R-helpers, > > I have a data frame with 3 variables, each record is a unique combination of > the three variables. I would like to count the number of unique values of v3 > in each v1, and save it as a new variable v4 in the same data frame. > e.g. > df1 > [v1] [v2] [v3] > [1,] "a" "C" "1" > [2,] "b" "C" "2" > [3,] "c" "B" "3" > [4,] "a" "B" "3" > [5,] "b" "A" "2" > [6,] "c" "A" "1" > > In this case, the 4th column would become (2, 1, 2, 2, 1, 2). > > Could someone tell me how to do this?
df1 <- data.frame(V1=rep(c('a','b','c'),2), V2=rep(c('C','B','A'),each=2), V3=c(1,2,3,3,2,1)) df1$V4 <- with(df1, ave(V3, V1, FUN = function(x){length(unique(x))})) df1 V1 V2 V3 V4 1 a C 1 2 2 b C 2 1 3 c B 3 2 4 a B 3 2 5 b A 2 1 6 c A 1 2 ?ave ?unique ?length > regards, > Lijiang > > -- > > [[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. -- Chuck Cleland, Ph.D. NDRI, Inc. (www.ndri.org) 71 West 23rd Street, 8th floor New York, NY 10010 tel: (212) 845-4495 (Tu, Th) tel: (732) 512-0171 (M, W, F) fax: (917) 438-0894 ______________________________________________ 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.