Используйте две колонки значений в функции 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
аргумент говорит: Неправильная спецификация столбца.
Мне очень нравится идея использовать такие%>%
оператор для манипулирования данными, поэтому мне интересно знать, как исправить мой код, чтобы это произошло.
Большое спасибо за помощь