【问题标题】:Determining Start / Finish Date for Stream Sales Data (R / Tidyverse)确定流销售数据的开始/结束日期 (R / Tidyverse)
【发布时间】:2018-07-30 01:14:10
【问题描述】:

请参阅this sample file 了解我的测试数据。

目标:确定(由客户):1) 获得销售的最早和最晚日期(以及那些月份的相应销售额); 2) 哪个月的销售额最高(以及相应的销售额是多少)

在整理阶段后卡住了 - 假设这需要使用一些“总结”:

library(tidyverse)

df <- read_csv("monthly_data.csv")

tidy_df <- df %>% 
  gather(-`Client Name`, key="Year", value="Sales") %>% 
  group_by(`Client Name`) %>%
  drop_na()

【问题讨论】:

    标签: r csv dplyr tidyr lubridate


    【解决方案1】:

    您可以按Client Name 分组,然后按照您的预期使用Summarise,尽管我的解决方案可能会更优雅。

    首先我会知道每个 Client Name 的销售额最高的月份

    library(lubridate)
    library(dplyr)
    
    top_months <- tidy_df %>%
     group_by(`Client Name`) %>%
     top_n(1, Sales) %>%
     mutate(top_month = month(mdy(Year))) %>%
     select(`Client Name`, top_month)
    

    然后您可以总结销售价值并加入几个月前的最高销售列表。

    library(dplyr)
    library(lubridate)
    
    tidy_df %>%
     mutate(Year = mdy(Year) %>%
     group_by(`Client Name`) %>%
     summarise(`Latest Sale` = max(Year),
            `Earliest Sale` = min(Year),
            `Highest Grossing Month Sales` = max(Sales)) %>%
     left_join(., top_months, by = "Client Name")
    

    【讨论】:

    • 这非常接近 - 它唯一缺少的是确定 LatestEarliest 销售中的销售额。
    • 你已经给了我完成所需的一切。谢谢@plduffy!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2012-08-19
    相关资源
    最近更新 更多