r中数据框的重组

时间:2015-04-23 21:29:49

标签: r dataframe transpose

我有这个数据框:

> data
        Date Treatment Plate.1 Plate.2 Plate.3 Plate.4 Plate.5 Plate.6 Plate.7 Plate.8 
1 2014-10-15         2       1       0       2       5       2       0      11       6 
2 2014-11-12         2       3       2       3       0       0       3       2       1
3 2014-12-11         2       1       0       1       1       0       1       1       0 
4 2015-02-11         2       0       0       0       0       0       0       0       0 
5 2015-03-09         2       0       0       0       0       0       0       0       0

我一直在尝试将其重组为这种格式:

> manually.created.dataframe
        Date Treatment Abundance
1 2014-10-15         2       1       
  2014-10-15         2       0
  2014-10-15         2       2
  2014-10-15         2       5
  2014-10-15         2       2
  2014-10-15         2       0
  2014-10-15         2       11
  2014-10-15         2       3
  2014-11-12         2       2
  2014-11-12         2       3
  2014-11-12         2       0
etc.

我试图实现转置功能无济于事。任何帮助或建议将不胜感激。谢谢!

编辑:对不起,我应该更清楚了。丰富是Plate.1,Plate的值。 2,板块。 3等每个日期值。我想将1-8号板放入一个标题为" Abundance"的垂直柱中,复制相邻垂直柱中的处理值和日期。

2 个答案:

答案 0 :(得分:2)

您可以使用melt包中的reshape2功能:

melt(data, id.vars = c("Date", "Treatment"), value.name = "Abundance")

您将在输出数据集中获得一个名为variable的其他列,其中包含Plate名称

答案 1 :(得分:1)

试试这个:

library(reshape2)
x = melt(data,id = c("Date","Treatment"))

这包含的列数多于您在所需解决方案中的列数,但我认为您可能会想要这些列,因为它会告诉您值来自哪个板。

但如果没有,你可以这样做:

x = x[-3]