Reputation: 1
I have a data frame :
Year var1 var2 var3
1 "2021" "19,080" "15,918" "11,502"
2 "2020" "19,367" "15,870" "11,302"
I want it in to look like this :
Year Var value
1 2021 var1 19,080
2 2021 var2 15,918
3 2021 var3 11,502
4 2020 var1 19,367
5 2020 var2 15,870
6 2020 var3 11,302
I try'd to do it with reshape2 melt but it didn,t work. It returned :
Var1 Var2 value NA NA NA
1 1 Year 2021 19,080 15,918 11,502
2 2 Year 2020 19,367 15,870 11,302
3 1 var1 2021 19,080 15,918 11,502
4 2 var1 2020 19,367 15,870 11,302
5 1 var2 2021 19,080 15,918 11,502
6 2 var2 2020 19,367 15,870 11,302
7 1 var3 2021 19,080 15,918 11,502
8 2 var3 2020 19,367 15,870 11,302
What did I do wrong?
Upvotes: 0
Views: 27
Reputation: 41377
You can use the following code:
df <- read.table(text=" Year var1 var2 var3
1 2021 19,080 15,918 11,502
2 2020 19,367 15,870 11,302", header = TRUE)
library(reshape2)
melt(df, id.vars = c("Year"), variable.name="Var")
#> Year Var value
#> 1 2021 var1 19,080
#> 2 2020 var1 19,367
#> 3 2021 var2 15,918
#> 4 2020 var2 15,870
#> 5 2021 var3 11,502
#> 6 2020 var3 11,302
Created on 2022-07-04 by the reprex package (v2.0.1)
Upvotes: 1