【发布时间】:2014-06-07 13:34:12
【问题描述】:
也许这甚至无法完成,因为我的数据格式不正确,但我正在尝试将其从“某种”宽格式转换为长格式。如果我先修改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")
我只是不明白如何处理所有额外的标题,并将它们变成长格式。
另外,我不明白为什么我的表在放入时看起来很好,但在预览中却被混在一起了。
【问题讨论】:
-
如果您make your question reproducible,您将获得更多帮助,至少发布一些实际数据
-
请发布更好的数据样本和您正在寻找的确切结果。另外,请向我们展示您迄今为止尝试过的代码。
-
使用 dput() 让我们自己尝试代码。
标签: r reshape2 import-from-excel melt