A transposição de um conjunto de dados é uma dessas operações que reforma os dados para atender aos requisitos específicos da análise. A transposição de um conjunto de dados envolve linhas e colunas invertidas do conjunto de dados, resultando em um novo conjunto de dados com colunas e linhas trocadas. R fornece algumas funções para transpor um conjunto de dados. Neste artigo, abordaremos os vários métodos de transposição para DataFrames em R.
Exemplo 1: transponha o DataFrame usando a função T () em R
A função t() é uma função embutida do R que é usada para transpor um DataFrame. No entanto, ele converte o DataFrame em uma matriz, portanto, qualquer coluna não numérica é transformada em cadeias de caracteres. Considere o seguinte script R para transpor o DataFrame:
MeusDados = data.frame(c1 = c(1, 2, 3, 4, 5),
c2 = c(6, 7, 8, 9, 10),
c3 = c(11, 12, 13, 14, 15))
row.names(MeusDados) = c('r1','r2','r3','r4','r5')
t(MeusDados)
Aqui, declaramos o vetor MyData e atribuímos o data.frame() a ele. Inserimos os dados de amostra que contêm três colunas com os valores dentro da função data.frame(). Depois disso, usamos a função “row.names()” e definimos os nomes das linhas para os valores do DataFrame “MyData”. Finalmente, transpomos o DataFrame “MyData” usando a função t().
A saída a seguir mostra a transposição do DataFrame onde os nomes das linhas do DataFrame original se tornam os nomes das colunas do DataFrame transposto e os nomes das colunas do DataFrame original são perdidos na transposição:
Exemplo 2: transponha o DataFrame usando a função Transpose () em R
A função transpose() do pacote “data.table” também pode ser usada para transpor um DataFrame e retornar um DataFrame. Portanto, temos que garantir que o “data.table” esteja instalado no R. Se não for encontrado, podemos instalá-lo com o seguinte comando:
install.packages('dados.tabela')Agora, podemos facilmente importar o pacote “data.table” para acessar a função transpose() no R para transpor o DataFrame. Considere o seguinte código R onde a função transpose() é chamada para transpor o DataFrame:
df <- data.frame(A = c(1:5),
B = c(6:10),
C = c(11:15))
row.names(df) <- c('r1', 'r2', 'r3', 'r4', 'r5')
df
Aqui, criamos o DataFrame “df” com três colunas e cinco linhas onde cada coluna contém uma sequência de números de 1 a 5, 6 a 10 e 11 a 15, respectivamente. Além disso, atribuímos os nomes de linha do DataFrame usando a função row.names(). Depois disso, imprimimos o DataFrame original no console.
O DataFrame original é mostrado na tela aqui:
Em seguida, transpomos o DataFrame “df” original trocando as linhas e colunas do DataFrame.
biblioteca(dados.tabela)df_trans <- transpor(df)
rownames(df_trans) <-colnames(df)
colnames(df_trans) <- rownames(df)
df_trans
Para isso, primeiro carregamos a biblioteca “data.table” que fornece as ferramentas para trabalhar com os dados tabulares em R. Em seguida, utilizamos a função transpose() da biblioteca “data.table”. O DataFrame transposto resultante é atribuído a uma nova variável que é “df_t”. Depois disso, atribuímos os nomes das colunas do DataFrame “df” original como nomes de linha para o DataFrame “df_trans” transposto usando a função rownames(). Em seguida, os nomes das linhas do DataFrame “df” original são atribuídos como nomes de coluna ao DataFrame “df_trans” transposto usando a função colnames().
Assim, a transposição do DataFrame original é alcançada na saída. Ele representa cada célula no DataFrame transposto no qual contém o mesmo valor que a célula correspondente no DataFrame original, mas em uma posição diferente devido à transposição.
Exemplo 3: transponha o DataFrame usando a função Gather() da biblioteca Tidyr em R
O pacote de organização do R pode ser usado para transpor um DataFrame. Esse método é útil quando queremos converter um DataFrame do formato largo para o formato longo e, em seguida, voltar ao formato largo com linhas e colunas trocadas. Ele fornece várias funções para transformar e reorganizar os dados. Antes disso, precisamos baixar o pacote de arrumação especificamente usando o seguinte comando:
install.packages('tidyr')Vamos considerar o seguinte código R. Usamos a função collect() deste pacote para transpor o DataFrame largo por mais tempo:
biblioteca (arrumado)n = 10
arrume_df = data.frame(
ID = c(1:n),
Exam1_Marks = c(73, 219, 86, 192, 99,
188, 72, 35, 91, 165),
Exam2_Marks = c(217, 89, 66, 334, 99,
101, 108, 233, 45, 300),
Exam3_Marks = c(39, 101, 209, 289, 176,
120, 89, 119, 199, 96))
arrume_df
Aqui, um DataFrame “largo” é convertido em um DataFrame “longo” usando o sistema de arrumação. Primeiro, criamos um DataFrame “tidy_df” com três colunas. Cada uma dessas colunas tem 10 valores.
O DataFrame longo é mostrado na seguinte tela de saída:
Em seguida, passamos o DataFrame “tidy_df” para a função collect() com o operador pipe “%>%”. A função collect () do alignr é usada para transformar “tidy_df” em um DataFrame longo. A função collect() recebe entradas com o nome “Exams” que indica uma nova coluna para conter os nomes das variáveis que são criadas na transformação. “Marks” especifica a coluna que reúne as “Exam1_Marks” e “Exam2_Marks” juntas.
longo <-ardy_df %>%reunir (exames, notas,
Exam1_Marks:Exam2_Marks)
longo
A saída exibe o DataFrame longo para o console, que agora possui um formato “longo” com três colunas:
Exemplo 4: transponha o DataFrame usando a função Pivot_Wider() em R
A próxima função avançada que usamos para transpor o DataFrame é a função pivot_wider(). O pivot_wider() é uma função do pacote de arrumação em R que nos permite transformar um DataFrame “longo” em um DataFrame “largo”. A função recebe três argumentos principais que são discutidos no seguinte código de R:
biblioteca (arrumado)df <- data.frame(
id = c(1, 2, 3, 1, 2, 3),
var = c('v1', 'v1', 'v1', 'v2', 'v2', 'v2'),
val = c(4, 5, 6, 7, 8, 9)
)
df
Aqui, primeiro carregamos o pacote de arrumação usando a função library(). Em seguida, definimos o DataFrame de amostra em “df”. O DataFrame “df” possui três colunas que contêm valores diferentes, respectivamente. O exemplo de DataFrame pode ser visto na seguinte saída:
Depois disso, a função pivot_wider() do alignr é usada para transformar “df” em “df_wide”.
df_wide <- pivot_wider(df, names_from = var, values_from = val)df_wide
A função pivot_wider() recebe três argumentos aqui. Primeiro, leva o DataFrame “df” para ser transformado. Em seguida, o argumento names_from define o nome da coluna a ser usado para os novos nomes de variáveis. Finalmente, o argumento values_from especifica o nome da coluna a ser usado para os novos valores.
A saída a seguir representa a transposição do DataFrame longo para o DataFrame largo:
Conclusão
Usamos várias maneiras de transpor o DataFrame em R. O primeiro exemplo é definido com o método integrado t(). Todos os outros exemplos precisavam dos pacotes para importar para que pudéssemos usar suas funções para a transposição do DataFrame. No entanto, o melhor método a ser usado depende da situação específica e da estrutura de dados com a qual você está trabalhando.