I have a large table (~100M row and 28 columns) in the below format:
ID A B C
1 2 0 1
2 0 1 0
3 0 1 2
4 1 0 0
Columns besides ID (which is unique) gives the counts for each type (i.e. A,B,C). I would like to convert this to the below long form.
ID Type
1 A
1 A
1 C
2 B
3 B
3 C
3 C
4 A
I also would like to use data table (rather than data frame) given the size of my data set. I checked reshape2
package in R
regarding converting between long and short form however I am not clear if melt
function would allow me to have counts in the short form as above.
Any suggestions on how I can convert this in a fast and efficient way in R
using reshape2
and/or data.table
?