У меня есть длинный набор данных, который я хотел бы сделать широким, и мне любопытно, есть ли способ сделать это всего за один шаг, используя пакеты reshape2 или tidyr в R.
Кадр данных df
выглядит следующим образом:
id type transactions amount
20 income 20 100
20 expense 25 95
30 income 50 300
30 expense 45 250
Мне бы хотелось:
id income_transactions expense_transactions income_amount expense_amount
20 20 25 100 95
30 50 45 300 250
Я знаю, что могу получить часть пути с помощью reshape2 через:
dcast(df, id ~ type, value.var="transactions")
Но есть ли способ переформатировать весь df одним выстрелом, одновременно обрабатывая переменные "транзакции" и "сумма"? И в идеале с новыми более подходящими именами столбцов?