• 主页
  • 课程

    关于课程

    • 课程归档
    • 成为一名讲师
    • 讲师信息
    同等学历教学

    同等学历教学

    免费
    阅读更多
  • 特色
    • 展示
    • 关于我们
    • 问答
  • 事件
  • 个性化
  • 博客
  • 联系
  • 站点资源
    有任何问题吗?
    (00) 123 456 789
    weinfoadmin@weinformatics.cn
    注册登录
    恒诺新知
    • 主页
    • 课程

      关于课程

      • 课程归档
      • 成为一名讲师
      • 讲师信息
      同等学历教学

      同等学历教学

      免费
      阅读更多
    • 特色
      • 展示
      • 关于我们
      • 问答
    • 事件
    • 个性化
    • 博客
    • 联系
    • 站点资源

      R语言

      • 首页
      • 博客
      • R语言
      • R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目

      • 发布者 weinfoadmin
      • 分类 R语言
      • 日期 2021年9月16日
      测试开头

      2021年第37周。


      这一周R语言学习,记录如下。


      01 

      添加文本标签信息


      可视化时,通过文本标签对图形做标注,让图形更有效表达信息。以ggplot2包的条形图为例,使用geom_text()函数给条形图添加文本标签。


      library(ggplot2)
      set.seed(123)
      data <- data.frame(x = sample(LETTERS[1:6], 300, replace = TRUE))
      head(data)   
      dim(data)

      # 使用geom_text()函数
      ggplot(data, aes(x = factor(x), fill = factor(x))) +
        geom_bar() +
        geom_text(aes(label = ..count..), 
                  stat = "count", 
                  vjust = 1.5, 
                  colour = "white")

      # 或者
      data1<- as.data.frame(table(data$x))      
      data1
      ggplot(data1, aes(x = Var1, y = Freq, fill = Var1)) + 
        geom_bar(stat = "identity") +
        geom_text(aes(label = Freq), 
                  vjust = 0)


      结果图

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目



      02 

      漏斗图


      漏斗图适合于流转分析。

      比方说,信贷流程:申请–审批–授信–放款;电商购物流程:浏览–点击–加入购物车–付款。


      library(dplyr)
      library(highcharter)
      options(highcharter.theme = hc_theme_smpl(tooltip = list(valueDecimals = 2)))

      df <- data.frame(
        x = c(0, 1, 2, 3, 4),
        y = c(975, 779, 584, 390, 200),
        name = as.factor(c("潜在客户", "电话销售", "跟进", "转化", "销售"))
      ) %>%
        arrange(-y)
      (df)

      hc <- df %>%
        hchart(
          "funnel", 
          hcaes(x = name, y = y),
          name = "销售流转"
        )
      hc


      结果图

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目


      03 

      聚合函数aggregate


      聚合函数aggregate对数据框做汇总操作。


      函数用法

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目


      举例说明

      # 聚合函数aggregate对数据框做汇总操作
      help("aggregate")
      data(iris)

      # 1) 按着类别计算均值
      aggregate(x = iris[,colnames(iris)!="Species"],
                by = list(iris$Species),
                FUN = mean)

      # 2)按着类别计算标准差
      aggregate(x = iris[,colnames(iris)!="Species"],
                by = list(iris$Species),
                FUN = sd)


      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目



      04 

      帕累托图


      二八法则

      帕累托图,条形图和折线图的结合体。

      条形图,表示各个类别的频数;折线图,表示各个类别的累积占比,具有排序性。


      library(qcc)
      df <- data.frame(product=c('A', 'B', 'C', 'D', 'E', 'F'),
                       count=c(40, 57, 50, 82, 17, 16))
      df

      pareto.chart(df$count,
                   main='Pareto Chart',
                   col=heat.colors(length(df$count)))


      结果表

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目


      结果图

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目


      05

       探索性数据分析


      原始数据入手,采用数字化和可视化方式,对数据做探索性分析

      助于对数据的理解和认识

      基本思路:通过汇总统计和图形表示,以发现模式、异常和检验假设


      # R包
      library(tidyverse)
      library(DataExplorer)

      # 数据集
      dim(gss_cat)
      str(gss_cat)

      # 1) 数据集概览
      gss_cat %>% glimpse()

      # 2) 数据集简要
      gss_cat  %>% introduce()

      # 3) 数据简要信息可视化
      gss_cat %>% plot_intro()

      # 4) 变量缺失率分析
      gss_cat %>% plot_missing()
      gss_cat %>% profile_missing()

      # 5) 连续变量可视化
      gss_cat  %>% plot_density() # 密度曲线图
      gss_cat  %>% plot_histogram() # 直方图

      # 6) 类别变量可视化
      gss_cat  %>% plot_bar() # 条形图

      # 7) 相关性可视化图
      gss_cat  %>% plot_correlation()
      gss_cat  %>% plot_correlation(maxcat = 5) 

      # 8) 探索性分析报告
      gss_cat %>%
        create_report(
          output_file = "gss_survey_data_profile_report",
          output_dir = "./report/",
          y="rincome",
          report_title = "EDA Report"
        )


      部分结果图

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目


      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目


      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目

      (完整结果,请运行代码自测)



      06 

      雷达图


      雷达图,又叫蜘蛛图,用于可视化多个定量变量的值,实现多个变量在二维空间的对比分析。


      客户分群项目,总结每个群体的特性时,可以用雷达图来表示。


      library(tidyverse)
      # devtools::install_github("ricardo-bion/ggradar")
      library("ggradar") 
      data<- data.frame(
        row.names = c("A", "B", "C"),
        Thickness = c(7.9, 3.9, 9.4),
        Apperance = c(10, 7, 5),
        Spredability = c(3.7, 6, 2.5),
        Likeability = c(8.7, 6, 4)
      )
      data
      df <- data %>% rownames_to_column("group")
      df
      ggradar(
        df, 
        values.radar = c("0", "5", "10"),
        grid.min = 0, 
        grid.mid = 5, 
        grid.max = 10,
        # Polygons
        group.line.width = 1, 
        group.point.size = 3,
        group.colours = c("#00AFBB", "#E7B800", "#FC4E07"),
        background.circle.colour = "white",
        gridline.mid.colour = "grey",
        legend.position = "bottom"
      )


      结果图

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目


      07 

      可重复性代码构建指南


      创建项目工程,做项目管理

      项目的层级架构,参考下图:

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目


      各个文件夹和文件的用途

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目


      请注意

      1 永远不要修改原始数据,或者说,一定要备份好原始数据

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目


      2 对于任何项目,创建一个文件,记录你的所思和所做,便于复盘和迭代

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目


      3 脚本的命名,请知名晓意,赋予含义,具有条理性和逻辑性,重视代码的可读性,代码是让电脑来运行的,更重要的是,让人来看的。

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目


      4 对于一个复杂的项目,编写代码之前,先写伪代码或者画流程图

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目


      08 

      tidyverse技能增进


      tidyverse是数据科学套件包,也是我常用的R包,可以完成数据导入、探索性数据分析、数据处理和整理、统计分析等数据工作。


      如何提升tidyverse技能?

      多学它和多用它。


      本周发现了一本tidyverse技能的线上书籍,送给大家。

      访问网址:

      https://jhudatascience.org/tidyversecourse/


      本书在开篇,就谈到了数据科学生命周期,一起学习下,关键的地方我做了标注。


      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目


      关于tidyverse包,有什么问题或者想法,可以添加我的微信,入群一起讨论和交流。


      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目



      09 

      TidyX项目


      项目愿景:通过做一系列有趣、有用、好玩的数据项目,帮助更多人学习和应用R,以及从数据中学习和用数据解答问题。

      项目内容:从TidyTuesday项目中选择一个人的代码,逐行阅读代码,解析代码是做什么以及各函数的功能,拆分可视化和迁移到相似的应用场景。


      第一集:研究旧金山数据集的代码


      源代码

      # 读入数据
      # sf_trees <- readr::read_csv('https://raw.githubusercontent.com/rfordatascience/tidytuesday/master/data/2020/2020-01-28/sf_trees.csv')
      sf_trees <- readr::read_csv('./data/tidytuesday/data/2020/2020-01-28/sf_trees.csv')

      # 探索数据

      # 提取类别名
      # Extract specie name
      library(stringr)
      species <- as.data.frame(as.character(word(sf_trees$species, 1, 2)))
      names(species)[1] <- "specie"
      sf_trees <-
        cbind(sf_trees, species)                              #Bind specie name with datase
      sf_trees$specie <-
        gsub("[[:punct:]]", " ", sf_trees$specie)     #Remove punctuation

      # Extract trees planted last year
      # 获取数据集
      sf_trees$year<-as.numeric(substr(sf_trees$date, start = 1, stop = 4)) #Get year
      trees2010s <-subset(sf_trees, year >=2015 & year <=2019) 

      # 可视化
      # 生成树地图

      #Get specie planted by year
      library(dplyr)
      count <- trees2010s %>%
        group_by(specie, year) %>%
        count()

      # Remove empty rows
      count <- count[-c(509:513,544:548), ]

      # Generate treemap
      library(treemap)
      treemap<-treemap(count,
                       index=c("year","specie"),
                       vSize="n",
                       type="index",
                       title="Trees Planted in San Franciscon 2015-2019",
                       fontsize.title = 14,
                       fontsize.labels=c(15,11), 
                       fontcolor.labels=c("black","brown"),    
                       fontface.labels=c(2,2),                 
                       overlap.labels=1,                      
                       inflate.labels=F,
                       palette="Greens",            
                       align.labels=list(
                         c("right", "bottom"), 
                         c("center", "center")))


      结果图

      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目


      读代码

      1 数据读取,采用readr包的read_csv函数。若是不能在线读取,就先进入githhub,把tidytuesday项目克隆一份到本地

      执行命令:

      git clone https://github.com/rfordatascience/tidytuesday.git

      若是不能打开github,就添加前面我的微信,备注:姓名-tidytuesday,我把下载好的本地化数据分享给你。


      2 字符串处理,利用stringr包的函数做字符串处理


      3 聚合统计,利用dplyr包的groupby函数和聚合函数count()做分组统计


      4 画树地图,利用treemap包的treemap函数绘制树地图。


      说明:1-3中的包已经包含在tidyverse包里面,treemap包使用前先安装和加载好。


      学习资料:

      https://github.com/CourtneyGerver/tidytuesday/blob/master/Week05-SFtrees/sfTreeViz.R



      我创建了R语言群,添加我的微信,备注:姓名-入群,我邀请你进群,一起学习R语言。


      R语言学习:添加文本标签、流转分析漏斗图,聚合函数,EDA,雷达图,TidyX项目



      如果你觉得文章内容有用,请关注下方公众号~



      如果你想找数据工作,请关注下方公众号~


      R语言学习专辑:

      2021年第36周:R语言学习

      2021年第35周:R语言学习

      2021年第34周:R语言学习

      觉得本文不错,就顺手帮我转发到朋友圈和微信群哦,谢谢。

      测试结尾

      请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!

      • 分享:
      作者头像
      weinfoadmin

      上一篇文章

      【单细胞数据分析】SCENIC 从单细胞数据推断基因调控网络和细胞类型
      2021年9月16日

      下一篇文章

      芯片数据分析神器:GEO2R
      2021年9月16日

      你可能也喜欢

      3-1665801675
      R语言学习:重读《R数据科学(中文版)》书籍
      28 9月, 2022
      6-1652833487
      经典铁死亡,再出新思路
      16 5月, 2022
      1-1651501980
      R语言学习:阅读《R For Everyone 》(第二版)
      1 5月, 2022

      搜索

      分类

      • R语言
      • TCGA数据挖掘
      • 单细胞RNA-seq测序
      • 在线会议直播预告与回放
      • 数据分析那些事儿分类
      • 未分类
      • 生信星球
      • 老俊俊的生信笔记

      投稿培训

      免费

      alphafold2培训

      免费

      群晖配置培训

      免费

      最新博文

      Nature | 单细胞技术揭示衰老细胞与肌肉再生
      301月2023
      lncRNA和miRNA生信分析系列讲座免费视频课和课件资源包,干货满满
      301月2023
      如何快速批量修改 Git 提交记录中的用户信息
      261月2023
      logo-eduma-the-best-lms-wordpress-theme

      (00) 123 456 789

      weinfoadmin@weinformatics.cn

      恒诺新知

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      链接

      • 课程
      • 事件
      • 展示
      • 问答

      支持

      • 文档
      • 论坛
      • 语言包
      • 发行状态

      推荐

      • iHub汉语代码托管
      • iLAB耗材管理
      • WooCommerce
      • 丁香园论坛

      weinformatics 即 恒诺新知。ICP备案号:粤ICP备19129767号

      • 关于我们
      • 博客
      • 联系
      • 成为一名讲师

      要成为一名讲师吗?

      加入数以千计的演讲者获得100%课时费!

      现在开始

      用你的站点账户登录

      忘记密码?

      还不是会员? 现在注册

      注册新帐户

      已经拥有注册账户? 现在登录

      close
      会员购买 你还没有登录,请先登录
      • ¥99 VIP-1个月
      • ¥199 VIP-半年
      • ¥299 VIP-1年
      在线支付 激活码

      立即支付
      支付宝
      微信支付
      请使用 支付宝 或 微信 扫码支付
      登录
      注册|忘记密码?