Convertir las columnas en filas, R de datos.marco [duplicar]

0

Pregunta

Quiero repetir heach columna en una nueva fila como el siguiente ejemplo:

Date<- c(seq(as.Date("2000/1/1"), by = "month", length.out = 3))
A<- c(seq(2,4,length.out=3))
B<- c(seq(20,40,length.out=3))

df <- (data.frame(Date,A,B))
df
        Date A  B
1 2000-01-01 2 20
2 2000-02-01 3 30
3 2000-03-01 4 40

Me gustaría tener esto:

# Final dataframe
        Date  Site  Value
1 2000-01-01     A      2
2 2000-02-01     A      3
3 2000-03-01     A      4
4 2000-01-01     B     20
5 2000-02-01     B     30
6 2000-03-01     B     40

hay una función para hacer esto?

data.table dataframe melt r
2021-11-24 00:26:52
1

Mejor respuesta

1

Usted puede utilizar reshape2::melt

library(dplyr)
library(reshape2)
library(stringr)

df %>%
  melt %>%
  mutate(Date = str_extract(variable, "[0-9]")) %>%
  select(-variable) %>%
  arrange(Site)

  Site value Date
1    A    10    1
2    A    30    2
3    B    20    1
4    B    40    2
2021-11-24 01:25:44

Debe tener en cuenta donde str_extract viene de. ¿Por qué estás extraer un único carácter de la fecha? Que pierde lo que es probablemente la información importante
camille

@camila, Gracias por recordármelo. Yo no aviso sobre stringr :D
Park

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................