Я видел довольно много сообщений, где формат данных трансформируется из широкого в длинный. Хотя мой вопрос немного сложнее. Я получил dataframe так:Как разбить диапазон на мелкие детали и преобразовать его из широкого формата в длинный?
id Start_time_of_conversation End_time_of_conversation Participant1 Participant2
id1 07:00 08:00 A B
id2 07:00 09:00 C D
Я хотел бы преобразовать эту dataframe в нечто вроде этого:
id time(in min) dataName dataValue
id1 07:00 Participant1 A
id1 07:00 Participant2 B
id2 07:00 Participant1 C
id2 07:00 Participant2 D
id1 07:01 Participant1 A
id1 07:01 Participant2 B
id2 07:01 Participant1 C
id2 07:01 Participant2 D
...
id1 08:59 Participant1 A
id1 08:59 Participant2 B
id1 09:00 Participant1 A
id1 09:00 Participant2 B
Так что не только изменить его на длинный формат, но и генерировать новую строку (две строки с 2 участниками) для каждой минуты между временным диапазоном Start_time_of_conversation и End_time_of_conversation.
Я думал, что, возможно, я должен использовать seq() и melt(), чтобы сделать это, хотя я действительно не вижу, как я мог это сделать без большого количества лоскутной игры. Должен ли я создать первый длинный формат и преобразовать каждый диапазон/строку в последовательность минут или есть ли более простой способ сделать это?
Спасибо! Я просто забыл упомянуть, что я могу не загружать пакет data.table, потому что в системе, где он должен запускаться, этого пакета не будет. Я могу использовать ggplot и plyr над базовыми командами. У вас есть какие-то предложения? – user5918250