Pular para o conteúdo principal

Como transpor uma matriz no R: Um tutorial rápido

Aprenda três métodos para transpor uma matriz no R neste rápido tutorial
Actualizado 16 de jan. de 2025

A transposição de matrizes é uma tarefa básica de manipulação de dados no ambiente de programação do R. Neste tutorial, orientarei você sobre como transpor matrizes de forma eficaz no R, apresentando vários métodos para realizar essa tarefa. Vamos começar!

A resposta rápida: Como transpor uma matriz no R

Se você estiver com pressa, esta é a maneira mais rápida de transpor uma matriz no R: use a função t(). A função t() faz parte da base do R e oferece uma maneira imediata de transpor uma matriz. Aqui está um exemplo simples:

# Creating a sample matrix
my_matrix <- matrix(1:6, nrow = 2, ncol = 3)
print(my_matrix)
      [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
# Transposing the matrix
transposed_matrix <- t(my_matrix)
print(transposed_matrix)
      [,1] [,2]
[1,]    1    2
[2,]    3    4
[3,]    5    6

O que é transposição?

A transposição de uma matriz envolve a inversão de suas linhas e colunas, transformando dados de linha em dados de coluna e vice-versa. Essa operação é comumente usada na manipulação de dados para reestruturar conjuntos de dados, tornando-os mais adequados para análises ou visualizações específicas. Por exemplo, considere uma matriz que contém as temperaturas diárias de diferentes cidades. A transposição desse quadro de dados trocaria as linhas (dias) pelas colunas (cidades), simplificando potencialmente outras operações, como plotagem ou análise estatística.

Dia

Nova York

Lost Angeles

Chicago

Dia 1

22

25

18

Dia 2

20

28

21

Um exemplo de conjunto de dados meteorológicos em 3 cidades antes da transposição

Cidade

Dia 1

Dia 2

Nova York

22

20

Los Angeles

25

28

Chicago

18

21

Um exemplo de conjunto de dados meteorológicos em 3 cidades após a transposição

Três métodos para transpor uma matriz em R

Considerando nossa matriz de temperaturas diárias para diferentes cidades, vamos explorar como transpor essa matriz usando vários métodos no R.

Método nº 1: Como transpor uma matriz em R usando o Base R

O método mais simples de transpor uma matriz no R é usar a função base do R t(), conforme demonstrado anteriormente. Ele é eficiente e direto e é uma opção para transpor matrizes rapidamente sem pacotes adicionais.

# Assume that temparature_matrix is already predefined
print(temperature_matrix)

      New_York Los_Angeles Chicago
Day 1       22          20      25
Day 2       28          18      21
# Transpose temperature_matrix
transposed_matrix <- t(temperature_matrix)

print(transposed_matrix)

      New_York Los_Angeles Chicago
Day 1       22          20      25
Day 2       28          18      21

Método nº 2: Transposição de uma matriz em R usando o tidyverse

O tidyverse é um conjunto robusto de ferramentas em R que torna o trabalho com dados eficiente e consistente. Embora o tidyverse seja geralmente usado com quadros de dados, você pode converter uma matriz em um quadro de dados e, em seguida, usar o site tidyr para "transpô-la" por meio de pivotamento. Isso é especialmente útil se você já estiver usando o tidyverse para analisar dados.

library(tidyr)
library(dplyr)
library(tibble)

# Converting the matrix to a data frame for tidyverse manipulation
temperature_df <- as.data.frame(temperature_matrix)

# "Transposing" the matrix by converting to long then wide format
transposed_df <- temperature_df %>%
  rownames_to_column(var = "Day") %>%
  pivot_longer(-Day, names_to = "City", values_to = "Temperature") %>%
  pivot_wider(names_from = City, values_from = Temperature)

print(transposed_df)
# A tibble: 2 × 4
  Day   New_York Los_Angeles Chicago
  <chr>    <dbl>       <dbl>   <dbl>
1 Day 1       22          20      25
2 Day 2       28          18      21

Método nº 3: Transposição de uma matriz em R usando data.table

Semelhante à abordagem tidyverse, o site data.table pode trabalhar com quadros de dados ou tabelas de dados. Veja como você pode transpor uma matriz, primeiro convertendo-a em uma tabela de dados:

library(data.table)

# Converting the matrix to a data.table
temperature_dt <- as.data.table(temperature_matrix, keep.rownames = "Day")

# Transposing the matrix by melting and dcasting (similar to pivot_longer and pivot_wider)
transposed_dt <- melt(temperature_dt, id.vars = "Day") %>%
  dcast(variable ~ Day, value.var = "value")

print(transposed_dt)
      variable Day 1 Day 2
1:    New_York    22    28
2: Los_Angeles    20    18
3:     Chicago    25    21

Considerações finais

A transposição de matrizes é uma habilidade fundamental na programação em R. Quer você trabalhe com o R básico, com o tidyr dentro do tidyverse ou com o pacote data.table, o R oferece opções flexíveis para atender às suas necessidades de dados. Se você quiser saber mais, confira nossa Folha de dicas para remodelar dados com tidyr em R ou, melhor ainda, comece a usar a trilha de habilidades de manipulação de dados em R.


Adel Nehme's photo
Author
Adel Nehme
LinkedIn

Adel é educador de ciência de dados, palestrante e evangelista da DataCamp, onde lançou vários cursos e treinamentos ao vivo sobre análise de dados, aprendizado de máquina e engenharia de dados. Ele é apaixonado pela disseminação das habilidades e da alfabetização de dados nas organizações e pela interseção entre tecnologia e sociedade. Ele tem um mestrado em ciência de dados e análise de negócios. Em seu tempo livre, você pode encontrá-lo passeando com seu gato Louis.

Temas

Continue sua jornada de R hoje mesmo!

programa

Fundamentos de programação em R

22 horas hr
Aumente o nível de suas habilidades de programação em R! Saiba como trabalhar com estruturas de dados comuns, otimizar o código e escrever suas próprias funções.
Ver DetalhesRight Arrow
Iniciar curso
Certificação disponível

curso

Intermediário R

6 hr
624.1K
Continue sua jornada para se tornar um ninja do R aprendendo sobre instruções condicionais, loops e funções vetoriais.
Ver maisRight Arrow