R: изменение формы от широкой к длинной [повторяется]

На этот вопрос уже есть ответ:

Преобразование нескольких наборов столбцов измерений (широкий формат) в отдельные столбцы (длинный формат) 6 ответов

У меня широкий массив данных, который выглядит примерно так:

    ID Time Amount     CabMean CabNum     PartMean PartNum     DinnMean   DinNum  Ex
1    1    1    27  0.654621546      8           NA       7  0.316791872        6   0
2    1    2    82  0.667461321      3  0.327594876       4  0.346798127        2   1
3    1    3    52  0.313976132      1           NA       6  0.197837257        7   0
4    1    4    99  0.798328712      9  0.913751678       4  0.191679538        9   1

Я хотел бы изменить (используя пакет reshape2) его в длинный формат, который принимает эту форму (просто составляя эти числа):

  ID Time Amount Ex Type   Mean         Num
1  1    2    50   0  Cab   0.65654321   7
2  1    2    50   0 Part   0.65654321   1
3  1    2    50   0 Dinn   0.65654321   4

Я пробовал что-то вроде этого:

reshaped <- melt(data, id.vars = c("ID", "Time", "Amount", "Ex"))

Что дает мне что-то вроде этого:

  ID Time Amount Ex  variable    value
1  1    1    10   0  CabMean 0.6565432
2  1    2    12   0  CabMean 0.6565432

Так что я на полпути и не могу разобраться с остальными. Как мне (из кода, который я сейчас использую, или из совершенно нового кода) извлечь тип (Cab, Part, Dinn) как отдельный столбец и создать 2 дополнительных столбца, которые содержат значения Mean и Num?

Ответы на вопрос(1)

Ваш ответ на вопрос