[R] help with the unique function
Marc Schwartz
marc_schwartz at comcast.net
Wed May 7 18:45:12 CEST 2008
ravi wrote:
> Hi,
> The unique function is easy to understand and use. Beyond that, I want to get also the frequency of repetition of each individual row in a data frame
> Let me explain with an example :
> x<-data.frame(a=c(1,2,3,1,2),b=c(2,3,4,2,3),c=c(10,20,30,10,20))
> xu<-unique(x)
> We have,
>> x
> a b c
> 1 1 2 10
> 2 2 3 20
> 3 3 4 30
> 4 1 2 10
> 5 2 3 20
>> xu
> a b c
> 1 1 2 10
> 2 2 3 20
> 3 3 4 30
>
> I want to get the following data frame :
> a b c Freq
> 1 1 2 10 2
> 2 2 3 20 2
> 3 3 4 30 1
> That is, in addition to the unique rows, I want to get the frequency of repetion of each individual row.
> I will appreciate all the help that I can get.
> Thank You,
> Ravi
As usual in R, there are several options:
> table(apply(x, 1, paste, collapse = ","))
1,2,10 2,3,20 3,4,30
2 2 1
or:
> table(interaction(x, sep = ",", drop = TRUE))
1,2,10 2,3,20 3,4,30
2 2 1
So:
> cbind(unique(x),
Freq = as.vector(table(apply(x, 1, paste, collapse = ","))))
a b c Freq
1 1 2 10 2
2 2 3 20 2
3 3 4 30 1
or:
> cbind(unique(x),
Freq = as.vector(table(interaction(x, sep = ",", drop = TRUE))))
a b c Freq
1 1 2 10 2
2 2 3 20 2
3 3 4 30 1
HTH,
Marc Schwartz
More information about the R-help
mailing list