Převést sloupce na řádky, R data.rám [duplicitní]

0

Otázka

Chci zopakovat, heach sloupce do nového řádku jako další příklad:

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

Chtěl bych mít toto:

# 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

je tam funkce, aby to?

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

Nejlepší odpověď

1

Můžete použít 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

Měli byste si uvědomit, kde str_extract pochází. Proč jste extrahování jeden znak z rande? Že ztrácí to, co je pravděpodobně důležité informace
camille

@camille Děkuji, že jste mi to připomněl. Nevšiml jsem si, o stringr :D
Park

V jiných jazycích

Tato stránka je v jiných jazycích

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