Изменение формы фрейма данных (преобразование строк в столбцы)
У меня есть следующий набор данных:
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 () указывает исходный фрейм данных. Затем вы определяете, как вы хотели бы назвать столбец с именами ваших исходных переменных, а затем, как следует называть столбец с их значениями. Наконец, вы указываете, какие столбцы вы хотите изменить. Все столбцы, которые не будут указаны (в нашем примере: Дата и Имя), остаются такими же, какими они были в исходном фрейме данных.
Есть хороший учебник по тидиру, опубликованный Брэдом Бемке на случай, если вам понадобится дополнительная информация.