[R] Create a data frame of all possible unique combinations of factors
jim holtman
jholtman at gmail.com
Wed Jul 6 02:08:24 CEST 2011
Missed that you wanted to elim duplicated:
> z <- expand.grid(test,test)
> # add 'unique' key
> z$key <- apply(z, 1, function(x)paste(sort(x), collapse=''))
> str(z)
'data.frame': 16 obs. of 3 variables:
$ Var1: Factor w/ 4 levels "A","B","C","D": 1 2 3 4 1 2 3 4 1 2 ...
$ Var2: Factor w/ 4 levels "A","B","C","D": 1 1 1 1 2 2 2 2 3 3 ...
$ key : chr "AA" "AB" "AC" "AD" ...
- attr(*, "out.attrs")=List of 2
..$ dim : int 4 4
..$ dimnames:List of 2
.. ..$ Var1: chr "Var1=A" "Var1=B" "Var1=C" "Var1=D"
.. ..$ Var2: chr "Var2=A" "Var2=B" "Var2=C" "Var2=D"
> subset(z, !duplicated(z$key))
Var1 Var2 key
1 A A AA
2 B A AB
3 C A AC
4 D A AD
6 B B BB
7 C B BC
8 D B BD
11 C C CC
12 D C CD
16 D D DD
>
On Tue, Jul 5, 2011 at 7:16 PM, Q <quagaars at gmail.com> wrote:
> Hello,
>
> I'm trying to create a data frame where each row has a unique combination of
> factors.
>
> I start with a vector of species like so:
>
>
>
>> 1> test <- c("A","B","C","D")
>>
>
>> 1> test
>>
>
>> [1] "A" "B" "C" "D"
>>
>
> To get all species combinations I have used expand.grid like this:
>
>
>
>> 1> pairs <- expand.grid(test,test)
>
>> 1> pairs
>
>> Var1 Var2
>
>> 1 A A
>
>> 2 B A
>
>> 3 C A
>
>> 4 D A
>
>> 5 A B
>
>> 6 B B
>
>> 7 C B
>
>> 8 D B
>
>> 9 A C
>
>> 10 B C
>
>> 11 C C
>
>> 12 D C
>
>> 13 A D
>
>> 14 B D
>
>> 15 C D
>
>> 16 D D
>>
>
> Now I want to select only the unique pairs, which I have tried to do with
> the function "unique":
>
>
>
>> 1> unique(pairs)
>>
>
> , but that doesn't do anything... I guess because it considers A,B to be
> different from B,A. The data frame I would like to end up with should look
> like this.
>
>
>
>> Var1 Var2
>
>> 1 A A
>
>> 2 B A
>
>> 3 C A
>
>> 4 D A
>
>> 6 B B
>
>> 7 C B
>
>> 8 D B
>
>> 11 C C
>
>> 12 D C
>
>> 16 D D
>
>>
>
> Thanks for your help!
>
> Q
>
> --
> View this message in context: http://r.789695.n4.nabble.com/Create-a-data-frame-of-all-possible-unique-combinations-of-factors-tp3647338p3647338.html
> Sent from the R help mailing list archive at Nabble.com.
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.
>
--
Jim Holtman
Data Munger Guru
What is the problem that you are trying to solve?
More information about the R-help
mailing list