【问题标题】:R: How do I make a summary table with aggregate and non-aggregate information?R:如何制作包含汇总和非汇总信息的汇总表?
【发布时间】:2019-06-01 20:40:48
【问题描述】:

我正在使用 bigmart data set。它包含十家商店的销售数据的假设数据。

我想制作一个表格,显示每家商店、他们的总销售额、平均价格和商店类型/年龄/规模。

我使用此代码添加聚合信息

xy <- group_by(train, Outlet_Identifier) %>% 
  summarize(sales = sum(Item_Outlet_Sales), 
            avgmrp = median(Item_MRP)) %>% 
  arrange(desc(sales))

我用这个为每个插座的大小做了一个表格

table(Outlet_Identifier,Outlet_Size)

这就是数据的样子

   Outlet_Identifier    sales avgmrp
   <fct>                <dbl>  <dbl>
 1 OUT027            3453926.   144.
 2 OUT035            2268123.   146.
 3 OUT049            2183970.   142.
 4 OUT017            2167465.   141.
 5 OUT013            2142664.   142.
 6 OUT046            2118395.   144.
 7 OUT045            2036725.   142.
 8 OUT018            1851823.   141.
 9 OUT010             188340.   144.
10 OUT019             179694.   144.

                 Outlet_Size
Outlet_Identifier     High Medium Small
           OUT010 555    0      0     0
           OUT013   0  932      0     0
           OUT017 926    0      0     0
           OUT018   0    0    928     0
           OUT019   0    0      0   528
           OUT027   0    0    935     0
           OUT035   0    0      0   930
           OUT045 929    0      0     0
           OUT046   0    0      0   930
           OUT049   0    0    930     0

如何制作汇总表 // 将非汇总信息添加到使用汇总的命令中?

编辑:这是我想要的输出

   Outlet_Identifier    sales avgmrp    type         size
   <fct>                <dbl>  <dbl>    <  >         <  >
 1 OUT027            3453926.   144.    grocery       934
 2 OUT035            2268123.   146.    grocery       564
 3 OUT049            2183970.   142.    grocery       934
 4 OUT017            2167465.   141.    supermarket   874
 5 OUT013            2142664.   142.    grocery       356
 6 OUT046            2118395.   144.    supermarket   764
 7 OUT045            2036725.   142.    grocery       934
 8 OUT018            1851823.   141.    supermarket   634
 9 OUT010             188340.   144.    supermarket   334
10 OUT019             179694.   144.    grocery       343

【问题讨论】:

  • 你想要与table输出相同的输出和tidyverse
  • 我希望 xy 的输出带有非聚合数据的额外列。比如,一列大小,一列类型等等。
  • 不清楚预期的输出
  • 你试过unique()吗?
  • 分类到type的信息在哪里?

标签: r tidyverse


【解决方案1】:

您只需将“类型”列传递给某个聚合函数,对于大小列,您可以使用n() 函数。

train %>%
  group_by(Outlet_Identifier) %>%
  summarise(
    sales = sum(Item_Outlet_Sales),
    avgmrp = median(Item_MRP),
    type = min(Outlet_Type),
    size = n()
  ) %>%
  arrange(desc(sales))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-19
    • 1970-01-01
    • 1970-01-01
    • 2020-10-09
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    相关资源
    最近更新 更多