Изменение формы фрейма данных (преобразование строк в столбцы)

У меня есть следующий набор данных:

  Name TOR_A Success_rate_A Realizable_Prod_A Assist_Rate_A Task_Count_A       Date
1 BVG1  2.00             85              4.20          0.44          458 31/01/2014
2 BVG2  3.99             90              3.98          0.51          191 31/01/2014
3 BVG3  4.00             81              8.95          0.35         1260 31/01/2014
4 BVG4  3.50             82              2.44          4.92         6994 31/01/2014
5 BVG1  2.75             85              4.00          2.77         7954 07/02/2014
6 BVG2  4.00             91              3.50          1.50          757 07/02/2014
7 BVG3  3.80             82              7.00          1.67         7898 07/02/2014
8 BVG4  3.60             83              3.50          4.87         7000 07/02/2014

Я хочу построить ggplot line graph с Date по оси х и TOR_A, Success_rate_A и т.д. на оси Y. Я также хотел бы видеть это Name колонка. Как я могу подготовить этот набор данных для достижения этой цели?

Я старался reshape в R, но не мог заставить его работать.

ОБНОВИТЬ

Сделано с помощью reshape2::recast метод, как показано ниже:

data_weekly = recast(data_frame_to_be_reshaped,variable+Name~Date,id.var=c(Name,Date))

1 ответ

Вы можете использовать пакет Tidyr Хэдли Уикхем.

df_reshaped <- gather(df_original, key = Variable, Value, Tor_A:Success_rate)

Как видите, первый аргумент в функции collect () указывает исходный фрейм данных. Затем вы определяете, как вы хотели бы назвать столбец с именами ваших исходных переменных, а затем, как следует называть столбец с их значениями. Наконец, вы указываете, какие столбцы вы хотите изменить. Все столбцы, которые не будут указаны (в нашем примере: Дата и Имя), остаются такими же, какими они были в исходном фрейме данных.

Есть хороший учебник по тидиру, опубликованный Брэдом Бемке на случай, если вам понадобится дополнительная информация.

Другие вопросы по тегам