Paul Bijker
Paul Bijker

Reputation: 1

R reshape2 melt unexpected result

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

Answers (1)

Quinten
Quinten

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

Related Questions