也许这甚至无法完成,因为我的数据格式不正确,但我正试图将其从“某种”宽格式转换为长格式。如果我先修改excel中的数据,我知道如何用melt来做到这一点,但我有很多数据,我希望不必先手动修改。
基本上,我的标题有深度,每列销售都有多个描述符。帐户、品牌、品种和等级(可能还有其他一些,取决于情况如何)
Account
Brand
Variety
Tier
Dates
1/1/2011 Sales xxx
2/1/2011 Sales xxx
我需要它的格式是
Date Account Brand Variety Tier Sales
我不明白如何使用 reshape 或 melt 来转换它。有什么建议,还是我只需要手动完成?
编辑
实际数据看起来像这样(更改名称以保护无辜者)
Account Account A Account A Account A Account A Account B
Brand Brand A Brand A Brand B Brand B Brand C
Variety Cab Chard Merlot Pinot Grigio Pinot Noir
Tier Tier 2 Tier 3 Tier 2 Tier 1 Tier 3
Date
6/1/20 35 47 35 28 -
7/1/2011 12 17 12 12 84
8/1/2011 - - - - -
9/1/2011 7 7 7 7 84
10/1/2011 28 28 28 28 112
11/1/2011 168
12/1/2011 7 7 7 7 224
1/1/2012 14 236
如果我在excel中按摩它看起来像这样
Date Compilation_Red Compilation_White Oak_Cab Oak_Chard
1 11/1/2012 351 140 183 190
2 12/1/2012 191 99 120 92
3 1/1/2013 96 56 87 51
4 2/1/2013 30 30 84 61
5 3/1/2013 96 70 100 57
6 4/1/2013 60 38 52 22
7 5/1/2013 12 17 65 49
8 6/1/2013 9 7 28 21
9 7/1/2013 16 13 23 22
10 8/1/2013 26 29 40 33
11 9/1/2013 14 4 30 23
12 10/1/2013 17 4 47 31
13 11/1/2013 23 5 63 35
14 12/1/2013 25 3 70 41
15 1/1/2014 44 1 88 41
16 2/1/2014 28 7 57 43
然后我知道如何使用 melt 将其变成长格式
myItem=melt(Account, id.vars="Date", variable.name="Variety", value.name="Sales")
我只是不明白如何处理所有额外的标题,并将它们变成长格式。
另外,我不明白为什么我的表在放入时看起来很好,但在预览中却被混合在一起。