0

Hi I have a df like this:

ValueA ValueB ID
0.10   1.00   1
0.15   2.00   2 
0.25   4.00   3

and so on. I need to transform this df into an output like this:

ID Value X 
1  ValueA 0.10
1  ValueB 1.00    
2  ValueA 0.15
2  ValueB 2.00
3  ValueA 0.25
3  ValueB 4.00

How can I do this with R? Thanks for your help.

Timothy_Goodman
  • 393
  • 1
  • 5
  • 18

1 Answers1

1

With the reshape2 package, you can do:

> reshape2::melt(mydata, id = "ID", variable = "Value", value.name = "X")
  ID  Value    X
1  1 ValueA 0.10
2  2 ValueA 0.15
3  3 ValueA 0.25
4  1 ValueB 1.00
5  2 ValueB 2.00
6  3 ValueB 4.00
Stéphane Laurent
  • 75,186
  • 15
  • 119
  • 225