Convertir des colonnes en lignes, R des données.châssis [dupliquer]

0

La question

Je tiens à répéter heach colonne dans une nouvelle ligne comme l'exemple suivant:

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

J'aimerais avoir ceci:

# 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

est-il une fonction pour faire cela?

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

La meilleure réponse

1

Vous pouvez utiliser 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

Vous devriez noter où str_extract vient de. Pourquoi êtes-vous l'extraction d'un seul personnage de la date? Qui perd de vue ce qui est probablement les informations importantes
camille

@camille Merci de me le rappeler. Je n'ai pas d'avis à propos de stringr :D
Park

Dans d'autres langues

Cette page est dans d'autres langues

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