Como encontrar todas as combinações únicas de dois vetores em r


Você pode usar qualquer um dos seguintes métodos para encontrar todas as combinações únicas de elementos de dois vetores em R:

Método 1: use o Tidyr

 library (tidyr)

#find unique combinations of elements from vector1 and vector2
crossing(vector1, vector2)

Método 2: use data.table

 library (data.table)

#find unique combinations of elements from vector1 and vector2
CJ(vector1, vector2, unique= TRUE ) 

Os exemplos a seguir mostram como usar cada um desses métodos na prática.

Exemplo 1: Encontrando combinações únicas usando Tidyr

O código a seguir mostra como encontrar todas as combinações únicas de elementos entre dois vetores em R usando a função cross() do pacote Tidyr :

 library (tidyr)

#definevectors
region=c(' North ', ' South ', ' East ', ' West ')
dots=c(0, 5, 10)

#display all unique combinations of region and points
crossing(region, points)

# A tibble: 12 x 2
   region points
      
 1 East 0
 2 East 5
 3 East 10
 4 North 0
 5 North 5
 6 North 10
 7 South 0
 8 South 5
 9South 10
10 West 0
11 West 5
12 West 10

O resultado é um quadro de dados que exibe todas as combinações exclusivas de elementos entre os dois vetores.

Podemos ver que existem 12 combinações únicas.

Se você quiser apenas saber o número de combinações únicas, você pode agrupar esta função com a função nrow() :

 library (tidyr)

#definevectors
region=c(' North ', ' South ', ' East ', ' West ')
dots=c(0, 5, 10)

#display number of unique combinations of region and points
nrow(crossing(region, points))

[1] 12

Observe que a função cross() também pode ser usada com mais de dois vetores.

Basta fornecer os nomes de quantos vetores desejar para a função cross() para encontrar o número total de combinações únicas.

Exemplo 2: Encontre combinações exclusivas usando data.table

O código a seguir mostra como encontrar todas as combinações exclusivas de elementos entre dois vetores em R usando a função CJ() do pacote data.table :

 library (data.table)

#definevectors
region=c(' North ', ' South ', ' East ', ' West ')
dots=c(0, 5, 10)

#display all unique combinations of region and points
CJ(region, points, unique= TRUE )

    region points
 1: East 0
 2: East 5
 3: East 10
 4: North 0
 5: North 5
 6: North 10
 7: South 0
 8: South 5
 9: South 10
10: West 0
11: West 5
12: West 10

O resultado é um quadro de dados que exibe todas as combinações exclusivas de elementos entre os dois vetores.

Observe que os resultados da função CJ() correspondem aos resultados da função cruzamento() .

A função CJ() também pode ser usada com mais de dois vetores.

Basta fornecer os nomes de quantos vetores desejar para a função CJ() para encontrar o número total de combinações exclusivas.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras tarefas comuns em R:

Como contar valores únicos por grupo em R
Como selecionar linhas únicas em um quadro de dados em R
Como contar valores distintos usando dplyr

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *