【发布时间】:2015-09-27 02:35:26
【问题描述】:
我有数据比较美国黑色星期五和加拿大节礼日的销售额。对于每个购物假期,我都有一个包含流行商品的数据框,我将它们组合在一起。我还有一个大致百分比的广告,每个假期都会有所不同。数据框如下所示:
+---------+----------+-----------+---------+
| Item | AdBudget | Holiday | AmtSold |
+---------+----------+-----------+---------+
| TV | $1000 | BlackFri | 1800 |
| Laptop | $2300 | BlackFri | 1400 |
| DVDs | $100 | BlackFri | 300 |
| Blender | $200 | BlackFri | 50 |
| TV | $1200 | BoxingDay | 1000 |
| Laptop | $1200 | BoxingDay | 850 |
| Blender | $500 | BoxingDay | 76 |
| DVDs | $400 | BoxingDay | 35 |
+---------+----------+-----------+---------+
项目因子的自动排序是按字母顺序排列的(即,Blender、DVD、笔记本电脑、电视)。我希望订购的是(电视、笔记本电脑、搅拌机、DVD)。
我想在 Boxing Day 订购 AmtSold 的 ITEM factor。你能帮我用重新排序来做到这一点吗?
谢谢。
编辑
一些评论者问我输出数据框会是什么样子。澄清一下,我不知道也不关心我是否重新排序数据框。我将这些数据放入 ggplot2 并制作条形图。像这样:
ggplot(dataframe,aes(x=Item,y=AmtSold))
+geom_bar(stat="identity")
+ facet_grid(Holiday ~ .)
正如答案to this question about ggplot2 bar graphs on factorsggplot2 中所说明的那样,根据字母(或者可能是字母数字?)排序对因子变量进行排序。
就我而言,这意味着我的条形图将按以下顺序显示条形: 搅拌机、DVD、笔记本电脑、电视
我想要在节礼日按销售量(从高到低)顺序排列的条形图,这个顺序: 电视、笔记本电脑、搅拌机、DVD
一种可能性是明确地这样做
dataframe$Item <- factor(dataframe$Item, levels = c("TV","Laptop","Blender","DVDs"))
但我想以编程方式进行。
【问题讨论】:
-
你还没有完成你的工作来提出一个好的 R 问题。它应该包括一个简单的自包含示例。
-
感谢您的反馈 - 修改完成
-
您能否说明这种重新排序将对您的示例 data.frame 产生什么影响?
-
好问题。我不关心它将如何改变数据框。我实际上遇到了这个问题:stackoverflow.com/questions/3253641/…
-
我理解答案,但不足以使重新排序部分适应我的特殊需求
标签: r