重塑数据帧(将行转换为列)

时间:2015-11-13 10:37:58

标签: r ggplot2 line-plot

我有以下数据集:

  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

我想在x轴上绘制ggplot line graph Date,在y轴上绘制TOR_A, Success_rate_A等。我还想在Name列中看到它。如何准备此数据集以实现此目标?

我在R中尝试了reshape但无法使其正常工作。

更新

使用reshape2::recast方法完成,如下所示:

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

1 个答案:

答案 0 :(得分:0)

你可以使用Hadley Wickham的tidyr套装。

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

enter image description here

如您所见,gather()函数中的第一个参数表示原始数据框。然后,您可以定义如何使用原始变量的名称命名列,然后如何使用其值将列命名为列。最后,指定要重塑的列。所有未指明的列(在我们的示例中:日期和名称)都保留原始数据框中的列。

如果你需要更多信息,B​​rad Boehmke发布了一个nice tutorial tidyr。