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?
 
    