Используйте две колонки значений в функции spread () в R [duplicate]

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

Транспонировать / изменять структуру данных без «timevar» из длинного в широкий формат 6 ответов Преобразование данных из длинного формата в широкоформатный с несколькими столбцами измерений 4 ответа

Я только что отправилвопро недавно спрашивал, как преобразовать данные из длинной таблицы в широкую таблицу. Тогда я нашелspread() - довольно удобная функция для этого. Так что теперь мне нужно немного доработать мой предыдущий пост.

Предположим, у нас есть такая таблица:

id1   |  id2 |  info  | action_time | action_comment  |
 1    | a    |  info1 |    time1    |        comment1 |
 1    | a    |  info1 |    time2    |        comment2 |
 1    | a    |  info1 |    time3    |        comment3 |
 2    | b    |  info2 |    time4    |        comment4 |
 2    | b    |  info2 |    time5    |        comment5 |

И я бы хотел изменить его на что-то вроде этого:

id1   |  id2 |  info  |action_time 1|action_comment1 |action_time 2|action_comment2 |action_time 3|action_comment3  |
 1    | a    |  info1 |    time1    |      comment1  |    time2    |      comment2  |    time3    |      comment3   |
 2    | b    |  info2 |    time4    |      comment4  |    time5    |      comment5  |             |                 |

Так что разница между этим вопросом и моим предыдущим вопросом заключается в том, что я добавил еще один столбец, и мне нужно, чтобы он также был изменен.

Я думаю использовать

library(dplyr)
library(tidyr)

df %>% 
  group_by(id1) %>% 
  mutate(action_no = paste("action_time", row_number())) %>%
  spread(action_no, value = c(action_time, action_comment))

Но это дает мне сообщение об ошибке, когда я помещаю два значения вvalue аргумент говорит: Неправильная спецификация столбца.

Мне очень нравится идея использовать такие%>% оператор для манипулирования данными, поэтому мне интересно знать, как исправить мой код, чтобы это произошло.

Большое спасибо за помощь

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

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