基于行的子集对r中的因子重新排序
我有数据比较美国黑色星期五和加拿大节礼日的销售额。对于每个购物假期,我都会有一个包含流行商品的数据框,我将其组合在一起。我也有一个大约百分比的广告,每个假期都有所不同。数据帧如下所示:基于行的子集对r中的因子重新排序,r,R,我有数据比较美国黑色星期五和加拿大节礼日的销售额。对于每个购物假期,我都会有一个包含流行商品的数据框,我将其组合在一起。我也有一个大约百分比的广告,每个假期都有所不同。数据帧如下所示: +---------+----------+-----------+---------+ | Item | AdBudget | Holiday | AmtSold | +---------+----------+-----------+---------+ | TV
+---------+----------+-----------+---------+
| 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 |
+---------+----------+-----------+---------+
项目因子的自动排序按字母顺序(即,搅拌机、DVD、笔记本电脑、电视)。我希望订购的是(电视、笔记本电脑、搅拌机、DVD)
我想在节礼日订购AmtSold的商品系数。你能帮我用reorder做这个吗
多谢各位
编辑
有几个评论者问我输出数据帧是什么样子的。澄清一下,我不知道也不关心是否对数据帧重新排序。我把这些数据放进ggplot2,然后做一个条形图。像这样:
ggplot(dataframe,aes(x=Item,y=AmtSold))
+geom_bar(stat="identity")
+ facet_grid(Holiday ~ .)
如答案ggplot2所示,根据字母顺序(或字母数字顺序?)对因子变量进行排序
在我的例子中,这意味着我的条形图将按以下顺序显示条形图:
搅拌机、DVD、笔记本电脑、电视
我要在节礼日按售出数量(从高到低)排列的酒吧,此订单:
电视、笔记本电脑、搅拌机、DVD
一种可能性是明确地这样做
dataframe$Item <- factor(dataframe$Item, levels = c("TV","Laptop","Blender","DVDs"))
dataframe$Itemlvls您还没有完成工作来问一个好的R问题。它应该包括一个简单的自包含示例。感谢您的反馈-编辑doneCan您可以说明这种重新排序将对示例数据产生什么影响。框架?好问题。我不关心它将如何改变数据帧。我实际上遇到了这个问题:我理解答案,但还不足以使重新排序的部分适应我的特殊需要谢谢你的回答。它确实适用于我所演示的示例,但是我正在使用的数据集实际上有数百个项目,为了简单起见,我已经删除了这些项目。手动执行此操作没有意义。很抱歉给您带来了困惑。那么您要的是什么订单??这不是排的顺序。@jihoward,这太棒了!这正是我要找的。非常感谢。
lvls <- as.character(df$Item[df$Holiday=="BoxingDay"])[order(df$AmtSold[df$Holiday=="BoxingDay"])]
df$Item <- factor(df$Item,levels=lvls)
library(ggplot2)
ggplot(df,aes(x=Item,y=AmtSold))+
geom_bar(aes(fill=Holiday), stat="identity") +
facet_grid(Holiday ~ .)