库存分析R语言实现方法

通过R脚本实现库存分析的两个内容,一是库存结余量随时间变化的折线图和月同柱状图,二是各个门店库存结余随时间变化的热力图。

R脚本绘制折线图和条形图

library(tidyverse)
library(readxl)
library(patchwork)

df1 <- read_xlsx("库存分析数据.xlsx")
head(df1)
df1$`出售年月(年月日)` = as.Date(df1$`出售年月(年月日)`,"%Y-%m-%d")
df1$`品类上新时间(年月日)` = as.Date(df1$`品类上新时间(年月日)`,"%Y-%m-%d")
#is.na(df1)

df_n <- df1 %>% 
  mutate(month = cut(`出售年月(年月日)`,breaks = "month")) %>%
  group_by(month) %>%
  summarise_if(is.numeric,~sum(.)) %>% 
  mutate(月同比=c(0,(本期结存量[-1] - 本期结存量[-15])/本期结存量[-1])) %>%
  select(month,本期结存量,月同比)

p1<- df_n %>%
  ggplot(aes(x=month,y=本期结存量,group = 1,color = "Orang"))+
  geom_line() +
  geom_point()+
  theme_minimal()+
  theme(legend.position = "none",axis.text.x = element_text(angle = 30, hjust=1))
p1

p2 <- df_n %>% 
  ggplot(aes(x=month,y=月同比))+
  geom_bar(stat = "identity",fill = "#009E73")+
  theme(axis.text.x = element_text(angle = 30, hjust=1))

p2 
p1/p2

库存变化趋势

R脚本实现门店信息热力图

df_m <- df1 %>% 
  mutate(month = cut(`出售年月(年月日)`,breaks = "month")) %>%
  group_by(month,门店) %>%
  summarise_at(vars(本期结存量),~sum(.)) 

p1 <- df_m %>%
  ggplot(aes(x = month, y= 门店,fill =本期结存量 )) +
  geom_tile()+
  theme(axis.text.x = element_text(angle = 30,hjust = 1)) +
  scale_fill_viridis()+
  labs(x = '',y='')+ 
  theme(axis.text.x=element_blank()) +
  guides(fill = FALSE)

p1 
p2<- df_m%>%
  filter( 门店!= "上海七莘路旗舰店") %>%
  ggplot(aes(x = month, y= 门店,fill =本期结存量 )) +
  geom_tile()+
  theme(axis.text.x = element_text(angle = 30,hjust = 1)) +
  scale_fill_viridis()
  
p2

p1 /p2
各门店库存变化

小结

R脚本实现以上两个分析,有几个关键点。

  1. 时间信息的分组,cut(出售年月(年月日),breaks = "month"),完成按月分组,从而结合group_by函数和summarise 函数进行归总
  2. 应用summarise 函数的各种变形,尤其是scope 应用,使得数据归总十分强大
  3. ggplot 绘图在实现绘图主题定制上脚本会比较多

你可能感兴趣的:(库存分析R语言实现方法)