Como transpor o DataFrame em R

Como Transpor O Dataframe Em R



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.