基于行的子集对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$Item
lvls您还没有完成工作来问一个好的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 ~ .)