У меня есть широкий dataframe, который выглядит примерно так:R: изменения формы шириной до тех пор
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 дополнительных столбца, которые содержат значения «Среднее» и «Нет»?
Base 'reshape' тоже можете это сделать:' перекроить (Дат, idvar = C ("ID", "Время"), направление = "длинный", варьируя = список (с (4,6,8), c (5,7,9)), times = c ("cab", "part", "dinn")) ' – thelatemail