programa
Como transpor uma matriz no R: Um tutorial rápido
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 é 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.
Continue sua jornada de R hoje mesmo!
curso
Intermediário R
curso