写在前面的话

转行数据分析——-大概是在两年前,这个想法就在我脑袋里面发芽了。但苦于自己知识储备和能力技能达不到数据分析师的需求,一直未将这个想法付诸实现。

近一年时间自己一直在空余时间学习数据分析相关的知识和工具。或许是因为自己的日常工作过于单调和重复,同时自己疏于动脑,学习效率已经降低了好多。惊觉自己不能再呆在舒适圈里面了,也不能再当温水里面的青蛙了,于是坚定了自己转行数据分析的想法。

转行就要面临自己从未接触过的空白区域,虽然这几年大数据、人工智很火,但是目前数据分析师的就业环境怎么样呢,在我心底也是个未知数。既然这样,那么不如亲自动手针对招聘网站的数据分析岗位进行挖掘分析,同时记录下来作为我转行求职简历的一部分,这样就很有意义了。

面试官你好,感谢你在百忙之中挑中了我的简历,或许因为你这次简单的“click”,将改变我今后的职业轨迹。感谢你的耐心阅读——有缘人!!!因为这是我数据分析的处女作。

言归正传

—————————————严肃的分割线——————————————-

说明

在分析之前我查询了大大小小的招聘网站,最终选择了boss直聘,不仅仅是因为boss网站源码最简单,而且信息也很丰富全面。但是boss直聘网站爬1页只能获取30条信息,而且最坑爹的是只能爬前10页,也就是说最多只能有300条的信息。数据量是少了点,就当是随机抽样了,拿来练手正好。那么话不多说,开爬!!!

爬取数据

数据来源:boss直聘.

数据范围:数据分析相关岗位.

数据集:boss直聘招聘网站全国各行业数据分析师招聘信息数据集.

工具:爬虫

##载入所需要的包
library(xml2)
library(rvest)
library(dplyr)
library(magrittr)
library(zoo)


#指定要爬取的url,创建空数据框接收for循环里的信息
url1 <- "https://www.zhipin.com/c100010000/?query=%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90%E5%B8%88&page="
url2 <- "&ka=page-"
job_data <- data.frame()
salary_data <- data.frame()
company_data <- data.frame()
detail1_data <- data.frame()
detail2_data <- data.frame()

for(i in 1:10){
  url <- paste(url1,i,url2,i,sep = "")
  webpage <- read_html(url,encoding = "UTF-8")
  job_info <- html_nodes(webpage,xpath = "//div[@class='job-title']/text()") %>%
    html_text() %>%
      data.frame()
  job_data <- bind_rows(job_data,job_info)
  
  salary_info <- html_nodes(webpage,xpath = "//span[@class='red']/text()") %>%
    html_text() %>%
      data.frame()
  salary_data <- bind_rows(salary_data,salary_info)
  
  company_info <- html_nodes(webpage,xpath = "//div[@class='company-text']//a/text()") %>%
    html_text() %>%
      data.frame()
  company_data <- bind_rows(company_data,company_info)
  
  detail1_info <- html_nodes(webpage,xpath = "//div[@class='company-text']/p/text()") %>%
    html_text() %>%
      data.frame()
  detail1_data <- bind_rows(detail1_data,detail1_info)
  
  detail2_info <- html_nodes(webpage,xpath = "//div[@class='info-primary']/p/text()") %>%
    html_text() %>%
      data.frame()
  detail2_data <- bind_rows(detail2_data,detail2_info)
}

names(job_data) <- "job"
names(salary_data) <- "salary"
names(company_data) <- "company"
names(detail1_data) <- "detail1"
names(detail2_data) <- "detail2"

看看爬取下来的数据。

lapply(list(job_data,salary_data,company_data,detail1_data,detail2_data),str)
## 'data.frame':    300 obs. of  1 variable:
##  $ job: Factor w/ 50 levels "【华为桌面云】项目数据分析",..: 14 14 27 14 14 27 6 14 14 14 ...
## 'data.frame':    300 obs. of  1 variable:
##  $ salary: Factor w/ 93 levels "10-11K","10-12K",..: 75 49 46 62 89 28 28 32 4 66 ...
## 'data.frame':    300 obs. of  1 variable:
##  $ company: Factor w/ 220 levels "1药网","58到家",..: 186 182 173 38 67 4 8 4 31 156 ...
## 'data.frame':    896 obs. of  1 variable:
##  $ detail1: Factor w/ 54 levels "0-20人","100-499人",..: 23 47 3 46 47 4 18 47 4 15 ...
## 'data.frame':    900 obs. of  1 variable:
##  $ detail2: Factor w/ 178 levels "1-3年","10年以上",..: 45 1 168 125 5 38 140 5 38 84 ...
## [[1]]
## NULL
## 
## [[2]]
## NULL
## 
## [[3]]
## NULL
## 
## [[4]]
## NULL
## 
## [[5]]
## NULL

处理数据

除了公司、职位、薪资三个信息比较清晰之外,像所处行业、发展阶段、公司规模三个信息在同一个数据框里面,所处城市、经验要求、学历要求也在同一个数据框里面。当前我的首要任务,就是把这些信息分开,以便于后面的分析。而且细心的我还观察到,“detail1_data”这个数据框只有896条数据,缺失了4条信息,那么就需要我手动添加缺失值了。

detail_data <- c(detail1_data$detail1[1:496],"不需要融资",detail1_data$detail1[497:663],
                 "不需要融资",detail1_data$detail1[664:827],"不需要融资",
                 detail1_data$detail1[828:889],"不需要融资",detail1_data$detail1[890:nrow(detail1_data)]) %>% data.frame()
detail_data$id <- index(detail_data)
industry_data <- detail_data[detail_data$id %% 3 == 1,1] %>% 
  data.frame()
phase_data <- detail_data[detail_data$id %% 3 == 2,1] %>% 
  data.frame()
scale_data <- detail_data[detail_data$id %% 3 == 0,1] %>% 
  data.frame()


detail2_data$id <- index(detail2_data)
city_data <- detail2_data[detail2_data$id %% 3 == 1,1] %>% 
  data.frame()
experience_data <- detail2_data[detail2_data$id %% 3 == 2,1] %>% 
  data.frame()
education_data <- detail2_data[detail2_data$id %% 3 == 0,1] %>% 
  data.frame()

final_data <- cbind(company_data,job_data,salary_data,city_data,experience_data,
                         education_data,industry_data,phase_data,scale_data) %>% data.frame()
names(final_data) <- c("company","job","salary","city","experience","education",
                       "industry","phase","scale")

看看处理过的数据

str(final_data)
## 'data.frame':    300 obs. of  9 variables:
##  $ company   : chr  "纬创软件" "网易" "腾讯" "必普创富" ...
##  $ job       : chr  "数据分析" "数据分析" "数据分析师" "数据分析" ...
##  $ salary    : chr  "6-7K" "25-50K" "25-35K" "4-5K" ...
##  $ city      : chr  "大连  " "上海 徐汇区 漕河泾" "深圳 南山区 科技园" "济南 历城区 汉峪" ...
##  $ experience: chr  "1-3年" "5-10年" "5-10年" "1-3年" ...
##  $ education : chr  "学历不限" "本科" "本科" "大专" ...
##  $ industry  : chr  "计算机软件" "移动互联网" "互联网" "电子商务" ...
##  $ phase     : chr  "已上市" "已上市" "已上市" "已上市" ...
##  $ scale     : chr  "1000-9999人" "10000人以上" "10000人以上" "1000-9999人" ...
head(final_data)
##    company        job salary               city experience education
## 1 纬创软件   数据分析   6-7K             大连        1-3年  学历不限
## 2     网易   数据分析 25-50K 上海 徐汇区 漕河泾     5-10年      本科
## 3     腾讯 数据分析师 25-35K 深圳 南山区 科技园     5-10年      本科
## 4 必普创富   数据分析   4-5K   济南 历城区 汉峪      1-3年      大专
## 5 哈啰出行   数据分析  8-15K   上海 闵行区 莘庄      1-3年      大专
## 6 Boss直聘 数据分析师 15-30K 北京 朝阳区 太阳宫      3-5年      本科
##       industry     phase       scale
## 1   计算机软件    已上市 1000-9999人
## 2   移动互联网    已上市 10000人以上
## 3       互联网    已上市 10000人以上
## 4     电子商务    已上市 1000-9999人
## 5       互联网 D轮及以上 1000-9999人
## 6 人力资源服务 D轮及以上 1000-9999人

上面的数据虽然我简单处理过了,但是可以看出来还是很脏。比如“salary”给定的是一个区间,而且还有很多不止12薪的;“city”里面有的地址太具体了,而且格式不统一,我们只需要前面的城市即可,后面的什么区、什么庄的,不太需要吧。 我们可以用平均工资来代替区间工资,工作经验要求里面,“经验不限”和“应届生”可以都变为“一年以下”,“city”只取前面的城市即可。

数据清洗

1、缺失值识别

虽然已经手动插补了缺失值,其实已经知道了数据没有缺失值,但是为了确保万无一失,还是要象征性过一遍。

library(VIM)
aggr(final_data,prop = T,numbers = T)

2、数据清洗

#删除重复行
final_data <- final_data[!duplicated(final_data[c("company","job","city")]),]

#计算平均工资
min_salary <- as.numeric(sub("([0-9]*).*","\\1",final_data$salary))
max_salary <- as.numeric(sub(".*-([0-9]*).*","\\1",final_data$salary))
final_data$avg_salary <- (min_salary+max_salary)/2

#取“city”中的城市
final_data$address <- strsplit(as.character(final_data$city)," ") %>%
  sapply("[",1)

#把“experience”里的“经验不限”和“应届生”变为“1年以下”
final_data$experience[final_data$experience %in% c("经验不限","应届生")] <- "1年以内"
final_data$experience <- factor(final_data$experience,levels = c("1年以内","1-3年","3-5年","5-10年","10年以上"))

final_data$address <- factor(final_data$address)
final_data$industry <- factor(final_data$industry)
final_data$education <- factor(final_data$education,levels = c("学历不限","高中","大专","本科","硕士"))
final_data$scale <- factor(final_data$scale,levels = c("0-20人","20-99人","100-499人","500-999人","1000-9999人","10000人以上"))
final_data$phase <- factor(final_data$phase,levels = c("不需要融资","未融资","A轮","B轮","C轮","D轮及以上","已上市"))

数据清洗完毕,得到清洗后的数据

str(final_data)
## 'data.frame':    276 obs. of  11 variables:
##  $ company   : chr  "纬创软件" "网易" "腾讯" "必普创富" ...
##  $ job       : chr  "数据分析" "数据分析" "数据分析师" "数据分析" ...
##  $ salary    : chr  "6-7K" "25-50K" "25-35K" "4-5K" ...
##  $ city      : chr  "大连  " "上海 徐汇区 漕河泾" "深圳 南山区 科技园" "济南 历城区 汉峪" ...
##  $ experience: Factor w/ 5 levels "1年以内","1-3年",..: 2 4 4 2 2 3 3 2 2 2 ...
##  $ education : Factor w/ 5 levels "学历不限","高中",..: 1 4 4 3 3 4 4 4 1 4 ...
##  $ industry  : Factor w/ 41 levels "O2O","餐饮","地产经纪/中介",..: 12 34 7 4 7 22 4 22 34 5 ...
##  $ phase     : Factor w/ 7 levels "不需要融资","未融资",..: 7 7 7 7 6 6 5 6 6 1 ...
##  $ scale     : Factor w/ 6 levels "0-20人","20-99人",..: 5 6 6 5 5 5 5 5 4 5 ...
##  $ avg_salary: num  6.5 37.5 30 4.5 11.5 22.5 22.5 21.5 12.5 6 ...
##  $ address   : Factor w/ 49 levels "北京","亳州",..: 5 27 29 16 27 1 29 1 19 10 ...

数据分析

1、先从最关心的开始:数据分析师薪酬水平

library(ggplot2)
library(ggthemes)


w <- windowsFont(family = "Microsoft YaHei")

attach(final_data)

bins <- (max(avg_salary)-min(avg_salary))/20
ggplot(final_data,aes(avg_salary,..density..))+
  geom_histogram(fill = "turquoise3",color = "white",binwidth = bins)+
  scale_x_continuous(breaks = seq(0,max(avg_salary),5))+
  stat_density(geom = "line",color = "red",size = .8)+
  theme_economist()+
  labs(x = "月薪(K/月)",title = "月薪分布情况")+
  theme(plot.title = element_text(hjust = 0.5,size = 15,face = "bold"),
        axis.title = element_text(size = 12,face = "bold"))+
  geom_vline(xintercept = sum(avg_salary)/nrow(final_data),lty = 2,col = "red",lwd = .8)+
  annotate("text",17,0.04,label = "15.7")

可以看到月薪均值为15.7K(这个数值简直出乎我的意料),月薪分布最主要集中在5-25K之间。均值在本次研究中的意义不是很大,参考下就行。其实我们还可以从图中还可以看到月薪分布最集中的还是在5-10K之间。

2、看看不同城市对数据分析师的需求

tab_data <- prop.table(table(final_data$address)) %>% data.frame()
names(tab_data)[1] <- "city"

ggplot(tab_data,aes(reorder(city,-Freq,sum),Freq))+
  geom_bar(fill = "turquoise3",stat = "identity")+
  theme_economist()+
  theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0,size = 10),
        axis.title = element_text(size = 12,face = "bold"),
        plot.title = element_text(hjust = .5,size = 15,face = "bold"))+
  labs(x = "城市",y = "需求量",title = "不同城市对数据分析师的需求情况")+
  scale_y_continuous(labels = scales::percent)

可以看到,对数据分析师需求高的是“北上广深杭”这几个一线城市,占据数据分析师需求的90%以上,而且可以看到城市越发达,对数据分析师的需求越高,这跟我们的感性思维比较符合。

final_data$address_type <- NA
final_data$address_type[final_data$address %in% c("北京","上海","广州","深圳","杭州")] <- "top5"
final_data$address_type[is.na(final_data$address_type)] <- "other"
final_data$address_type <- factor(final_data$address_type,levels = c("top5","other"))


ggplot(final_data,aes(x = address,y = avg_salary,fill = address_type))+
  geom_boxplot()+
  theme_economist()+
  labs(x = "城市",y = "月薪 K/月",title = "不同城市薪酬水平比较")+
  theme(plot.title = element_text(hjust = 0.5,size = 15,face = "bold"),
        axis.text.x = element_text(angle = 90,hjust = 1,vjust = 0,size = 10),
        axis.title = element_text(size = 12,face = "bold"),
        legend.title = element_blank())

同时可以看到,数据分析师需求最大的几个城市薪酬水平相对较高,但是广州的数据分析师的薪酬水平相较其他几个一线城市低了很多,甚至赶不上苏州、厦门、武汉等城市。其中一些城市,比如青岛、沈阳、乌鲁木齐、重庆等城市虽然薪酬水平看起来高,但是这是样本容量太少所致,所以分析起来意义不大。

3、各行各业对数据分析师的需求分析

tab_indusry <- table(industry) %>% prop.table() %>% data.frame()


final_data$industry_type <- NA
final_data$industry_type[final_data$industry %in% 
              c("互联网","移动互联网","计算机软件","互联网金融","电子商务")] <- "top5"
final_data$industry_type[is.na(final_data$industry_type)] <- "other"
final_data$industry_type <- factor(final_data$industry_type,levels = c("top5","other"))

ggplot(tab_indusry,aes(reorder(industry,-Freq,sum),Freq))+
  geom_bar(stat = "identity",fill = "turquoise3")+
  theme_economist()+
  labs(x = "行业",y = "需求量",title = "不同行业对数据分析师的需求")+
  theme(plot.title = element_text(hjust = 0.5,size = 17,face = "bold"),
        axis.title = element_text(size = 13,face = "bold"),
        axis.text.x = element_text(angle = 90,hjust = 1,vjust = 0,size = 10))+
  scale_y_continuous(labels = scales::percent)

互联网相对于传统行业,对数据分析师的需求量大很多,占比90%以上。这还是行业特性所致,互联网相较于传统行业,数据的产生速度以及产生的数据量都大很多,那么这个数据占比也说得通了。相反,传统行业目前对数据分析师的需求并不是那么大,可以说很多企业都处于空白阶段,可能是由于这些企业数据还没有规范化。但是从另一个方面来讲,这也意味着传统行业有着更多的发展空间。我相信过不了多长时间,像医疗健康、物流仓储、人力资源服务等行业对数据分析师的需求会越来越大,这些行业数据分析师的就业前景相当可观。

ggplot(final_data,aes(industry,avg_salary,fill = industry_type))+
  geom_boxplot()+
  theme_economist()+
  labs(x = "行业",y = "薪资(K/月)",title = "不同行业的薪酬分布")+
  theme(plot.title = element_text(size = 15,hjust = 0.5,face = "bold"),
        axis.title = element_text(size = 13,face = "bold"),
        axis.text.x = element_text(angle = 90,hjust = 1,vjust = 0,size = 10),
        legend.title = element_blank())

需求量大,不一定薪资水平就高。计算机软件和电子商务薪资水平,相较于其他互联网行业来说不是很高。汽车生产、人力资源服务、社交网络、医疗护理等行业,数据分析师的需求量不是很大,但是薪酬水平很高。这几个行业未来可以重点关注下。

4、工作经验的重要程度

multiplot <- function(..., plotlist=NULL, file, cols=1, layout=NULL) {
  library(grid)
  plots <- c(list(...), plotlist)
  numPlots = length(plots)
  if (is.null(layout)) {
    layout <- matrix(seq(1, cols * ceiling(numPlots/cols)),
                     ncol = cols, nrow = ceiling(numPlots/cols))
  }
  if (numPlots==1) {
    print(plots[[1]])
  } else {
    grid.newpage()
    pushViewport(viewport(layout = grid.layout(nrow(layout), ncol(layout))))
    for (i in 1:numPlots) {
      matchidx <- as.data.frame(which(layout == i, arr.ind = TRUE))
      print(plots[[i]], vp = viewport(layout.pos.row = matchidx$row,
                                      layout.pos.col = matchidx$col))
    }
  }
}
tab_exp <- table(experience) %>% prop.table() %>% data.frame() 

p1 <- ggplot(tab_exp,aes(experience,Freq,fill = experience))+
  geom_bar(stat = "identity")+
  theme_economist()+
  labs(y = "不同工作经验需求占比",title = "工作经验的需求")+
  theme(plot.title = element_text(hjust = 0.5,size = 18,face = "bold"),
        axis.title = element_text(size = 13,face = "bold"),
        legend.title = element_blank(),
        legend.position = "none",
        axis.title.x = element_blank())+
  scale_y_continuous(labels = scales::percent)

p2 <- ggplot(final_data,aes(x = experience,y = avg_salary,fill = experience))+
  geom_boxplot()+
  theme_economist()+
  labs(y = "月薪 K/月",title = "不同工作经验的薪资水平")+
  theme(plot.title = element_text(hjust = 0.5,size = 18,face = "bold"),
        legend.position = "none",
        axis.title = element_text(size = 13,face = "bold"),
        axis.title.x = element_blank())

multiplot(p1,p2,cols = 2)

可以看到最多的工作经验需求集中在1-3年和3-5年之间,1年之内需求其实也不少了。所以,只要你有能力,即使没有工作经验,也有相当大的转行机会。

另外,随着工作经验的增长,薪资水平增长很客观。10年以上的工作经验由于样本容量太小,无实际参考意义,可以忽略。

5、学历是否是关键因素呢?

tab_education <- table(education) %>% prop.table() %>% data.frame()


p3 <- ggplot(tab_education,aes(education,Freq,fill = education))+
  geom_bar(stat = "identity")+
  theme_economist()+
  labs(y = "不同学历占比",title = "学历的需求")+
  theme(plot.title = element_text(hjust = 0.5,size = 18,face = "bold"),
        axis.title = element_text(size = 13,face = "bold"),
        legend.title = element_blank(),
        legend.position = "none",
        axis.title.x = element_blank())+
  scale_y_continuous(labels = scales::percent)

p4 <- ggplot(final_data,aes(x = education,y = avg_salary,fill = education))+
  geom_boxplot()+
  theme_economist()+
  labs(y = "月薪 K/月",title = "不同学历的薪资水平")+
  theme(plot.title = element_text(hjust = 0.5,size = 18,face = "bold"),
        legend.position = "none",
        axis.title = element_text(size = 13,face = "bold"),
        axis.title.x = element_blank())

multiplot(p3,p4,cols = 2)

接近80%的公司都要求本科以上。大专以下与大专以上的薪资水平差距明显,但是本科和硕士的薪资水平差距不是很大。学历不限这一项薪资水平接近本科的薪资水平,并且80%以上的公司都要求本科以上,所以我判断可能是因为招聘者对学历这一项信息缺失输入造成的,学历不限这个水平可以并入本科。

6、哪个阶段的企业会给出更高的薪资呢?

tab_phase <- table(phase) %>% prop.table() %>% data.frame()

ggplot(tab_phase,aes(phase,Freq,fill = phase))+
  geom_bar(stat = "identity")+
  theme_economist()+
  labs(title = "不同发展阶段的企业对数据分析师的需求")+
  theme(plot.title = element_text(hjust = 0.5,size = 18,face = "bold"),
        axis.title = element_text(size = 13,face = "bold"),
        legend.title = element_blank(),
        legend.position = "none",
        axis.title.x = element_blank(),
        axis.title.y = element_blank())+
  scale_y_continuous(labels = scales::percent)

ggplot(final_data,aes(x = phase,y = avg_salary,fill = phase))+
  geom_boxplot()+
  theme_economist()+
  labs(y = "月薪 K/月",title = "不同阶段的企业数据分析师的薪资水平")+
  theme(plot.title = element_text(hjust = 0.5,size = 18,face = "bold"),
        legend.position = "none",
        axis.title = element_text(size = 13,face = "bold"),
        axis.title.x = element_blank())

虽然上市公司对数据分析师的需求相对高很多,但是不一定能给出更高的薪酬。

7、是否更大的企业需求更多的数据分析师呢?薪酬水平怎样?

tab_scale <- table(scale) %>% prop.table() %>% data.frame()

ggplot(tab_scale,aes(scale,Freq,fill = scale))+
  geom_bar(stat = "identity")+
  theme_economist()+
  labs(title = "不同规模的企业对数据分析师的需求")+
  theme(plot.title = element_text(hjust = 0.5,size = 18,face = "bold"),
        axis.title = element_text(size = 13,face = "bold"),
        legend.title = element_blank(),
        legend.position = "none",
        axis.title.x = element_blank(),
        axis.title.y = element_blank())+
  scale_y_continuous(labels = scales::percent)

ggplot(final_data,aes(x = scale,y = avg_salary,fill = scale))+
  geom_boxplot()+
  theme_economist()+
  labs(y = "月薪 K/月",title = "不同规模的企业数据分析师的薪资水平")+
  theme(plot.title = element_text(hjust = 0.5,size = 18,face = "bold"),
        legend.position = "none",
        axis.title = element_text(size = 13,face = "bold"),
        axis.title.x = element_blank())

是的,没错,规模越大的公司能给出更高的薪资。由于10000人以上的公司相较1000-9999人的公司数量而言, 在数量上少一些,所以直接体现在对数据分析师的需求数量上,这个结论也是没有在意料之外。

8、企业对工作经验的要求

tab_se <- table(scale,experience) %>% prop.table(1) %>% data.frame()
tab_pe <- table(phase,experience) %>% prop.table(1) %>% data.frame()

ggplot(tab_se,aes(scale,Freq,fill = experience))+
  geom_bar(stat = "identity")+
  theme_bw()+
  labs(title = "不同规模的企业对经验的要求")+
  theme(legend.title = element_blank(),
        plot.title = element_text(hjust = 0.5,size = 18,face = "bold"),
        axis.title = element_blank())+
  geom_text(aes(label = paste(round(tab_se$Freq,3)*100,"%",sep = "")),colour = "white",
            position = position_stack(0.5),vjust = 0)+
  scale_y_continuous(labels = scales::percent)

ggplot(tab_pe,aes(phase,Freq,fill = experience))+
  geom_bar(stat = "identity")+
  theme_bw()+
  labs(title = "不同发展阶段的企业对经验的要求")+
  theme(legend.title = element_blank(),
        plot.title = element_text(hjust = 0.5,size = 18,face = "bold"),
        axis.title = element_blank())+
  geom_text(aes(label = paste(round(tab_pe$Freq,3)*100,"%",sep = "")),colour = "white",
            position = position_stack(0.5),vjust = 0)+
  scale_y_continuous(labels = scales::percent)

可以看到企业规模越大,对数据分析师工作经验的要求越高。不同发展阶段的公司,对数据分析师的经验要求没有明显差别。

9、企业对学历的要求

tab_sedu <- table(scale,education) %>% prop.table(1) %>% data.frame()
tab_pedu <- table(phase,education) %>% prop.table(1) %>% data.frame()

ggplot(tab_sedu,aes(scale,Freq,fill = education))+
  geom_bar(stat = "identity")+
  theme_bw()+
  labs(title = "不同规模的企业对学历的要求")+
  theme(legend.title = element_blank(),
        plot.title = element_text(hjust = 0.5,size = 18,face = "bold"),
        axis.title = element_blank())+
  geom_text(aes(label = paste(round(tab_sedu$Freq,3)*100,"%",sep = "")),colour = "white",
            position = position_stack(0.5),vjust = 0)+
  scale_y_continuous(labels = scales::percent)

ggplot(tab_pedu,aes(phase,Freq,fill = education))+
  geom_bar(stat = "identity")+
  theme_bw()+
  labs(title = "不同发展阶段的企业对学历的要求")+
  theme(legend.title = element_blank(),
        plot.title = element_text(hjust = 0.5,size = 18,face = "bold"),
        axis.title = element_blank())+
  geom_text(aes(label = paste(round(tab_pedu$Freq,3)*100,"%",sep = "")),colour = "white",
            position = position_stack(0.5),vjust = 0)+
  scale_y_continuous(labels = scales::percent)

与工作经验类似,规模越大的公司对学历的要求越高。而不同发展阶段的公司对学历的要求差异不是很明显。

结论

需求量:

薪资水平:

工作经验要求:

1.企业规模越大,对数据分析师工作经验的要求越高;

2.不同发展阶段的公司,对数据分析师的经验要求没有明显差别。

学历的要求:

——————————— 感谢您的耐心阅读 ————————————-