[R] Determining the length of unique items in a vector

Barry Rowlingson b.rowlingson at lancaster.ac.uk
Fri Aug 20 12:31:14 CEST 2010


On Fri, Aug 20, 2010 at 11:01 AM, Ron Michael <ron_michael70 at yahoo.com> wrote:
> Dear all, let suppose I have following vector:
>
>> dat1 <- c(rep("asd", 5), rep("xyz", 12), rep("erd", 17))
>> dat1 <- dat1[sample(1:length(dat1), length(dat1), replace=F)]
>> dat1
>  [1] "erd" "xyz" "erd" "asd" "asd" "erd" "xyz" "asd" "erd" "erd" "asd" "xyz" "erd" "asd" "xyz" "xyz" "erd" "xyz" "erd"
> [20] "erd" "erd" "xyz" "xyz" "erd" "erd" "erd" "erd" "xyz" "xyz" "xyz" "erd" "xyz" "erd" "erd"
>
>
> Here I want to know the length of replications for each unique items viz "asd", "xyz", and "erd". Is there any R function available to directly implement that?

 Like what rle does?

>> rle(dat1)
Run Length Encoding
  lengths: int [1:19] 1 3 2 3 1 1 1 2 1 3 ...
  values : chr [1:19] "asd" "erd" "asd" "erd" "xyz" "erd" "xyz" "erd" ...

 That's saying there's 1 asd, then 3 erd, then 2 asd, and so on.

?rle for more.

Barry



More information about the R-help mailing list