2019-01-18

Cómo transponer un data frame en R

Problema

Queremos transponer un data frame.

df <-
  structure(
    list(
      Country.Name = c("Country1", "Country2", "Country3"),
      `1997` = c(1L, 2L, 4L),
      `1998` = c(1L, 4L, 2L),
      `1999` = c(1L, 7L, 1L),
      `2000` = c(1L, 10L, 5L)
    ),
    .Names = c("Country.Name",
               "1997", "1998", "1999", "2000"),
    class = "data.frame",
    row.names = c(NA,-3L)
  )
  Country.Name 1997 1998 1999 2000
1     Country1    1    1    1    1
2     Country2    2    4    7   10
3     Country3    4    2    1    5

Solución

Empleamos la función t que transpone una matriz o data frame.

# Transpone todas las columnas menos la primer
df_transpose <- data.frame(t(df[-1]))
# Añadimos los nombres de las columnas
colnames(df_transpose) <- df[, 1]
df_transpose
     Country1 Country2 Country3
1997        1        2        4
1998        1        4        2
1999        1        7        1
2000        1       10        5

Entradas relacionadas

Referenciass

No hay comentarios:

Publicar un comentario

Nube de datos