全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1241 0
2020-12-30
tidyverse:R语言中相当于python中pandas+matplotlib的存在[color=rgba(0, 0, 0, 0.3)]原创 [color=rgba(0, 0, 0, 0.3)]拴小林 https://www.tidyverse.org/

书籍网址:https://r4ds.had.co.nz/


The tidyverse is an opinionated collection of R packages designed for data science. All packages share an underlying design philosophy, grammar, and data structures.Install the complete tidyverse with:
复制代码

library(tidyverse)  #加载以下tidyverse中核心的packages:
  • ggplot2:画图,可视化数据

  • dplyr:操控数据,过滤、排序等

  • tidyr:清理数据

  • readr:(从文件中读取数据

  • purrr:(提供好用的编程函数

  • tibble:data.frame升级款

  • stringr:处理字符,查找、替换等

  • forcats:处理因子问题



复制代码


以下讲:readr(读)、tibble(类型)、%>%(管道)、dplyr(加减乘除)、tidyr(透视/反透视)、ggplot2(可视化)



01

readr:数据导入/读取


readr comes with five parsers for rectangular file formats:
  • read_csv() and read_csv2() for csv files,csv文件(逗号分隔的文件,execl文件可以另存为csv文件)【必学】
  • read_tsv() for tabs separated files
  • read_fwf() for fixed-width files
  • read_log() for web log files


复制代码

读取其他格式数据:
  • readxl:readxls(); readxlsx();

  • haven:打开SAS 、SPSS、Stata等外部数据。




02

tibble:高级数据框(data.frame升级版)

——数据(列)类型一目了然


tibble是R语言中一个用来替换data.frame类型的扩展的数据框,tibble继承了data.frame,是弱类型的,同时与data.frame有相同的语法,使用起来更方便。tibble包,也是由Hadley开发的R包。

tibble对data.frame做了重新的设定:

  • tibble,不关心输入类型,可存储任意类型,包括list类型

  • tibble,没有行名设置 row.names

  • tibble,支持任意的列名

  • tibble,会自动添加列名

  • tibble,类型只能回收长度为1的输入

  • tibble,会懒加载参数,并按顺序运行

  • tibble,是tbl_df类型


tibble是data.frame的进化版,有如下优点:生成的数据框数据每列可以保持原来的数据格式; 查看数据时,不再会一行显示不下(会自动隐藏一部分,自带head);有两种方式来创建tibble格式的数据:



1. 直接创建

复制代码



2. 其他格式转化,使用as_tibble转换为tibble格式
复制代码

更多:http://blog.fens.me/r-tibble/

03

%>%:管道函数

——将左侧的值应用到右侧数据data位置


管道函数在tidyverse中,管道符号是数据整理的主力,可以把许多功能连在一起,而且简洁好看,比起R的基本代码更加容易阅读!例如:x %>% f(y) 等价于 f(x,y)
Rstudio中快捷键:   ctrl+shift+m

以R中自带的iris(鸢尾花数据集)为例:
复制代码


04

dplyr:数据整理


dplyr包的下述五个函数用法

4.1 筛选: filter

4.2 排列: arrange
4.3 选择: select
4.4 变形: mutate
4.5 汇总: summarise
4.6 分组: group_by
复制代码



4.1 筛选: filter()

#按给定的逻辑判断筛选出符合要求的子数据集

复制代码

4.2 排列: arrange()

复制代码

4.3 选择: select()

复制代码

4.4 变形: mutate()
复制代码


4.5 汇总: summarise()

复制代码

4.6 分组: group_by()

复制代码

05

tidyr:数据整理

tidyr的两个主要函数是 gather()和 spread()。这些函数允许在长数据格式(long data)和宽数据格式(wide data)之间进行转换(功能类似于reshape包,但是比reshape更好用,并且可以用于管道%>%连接)。
tidyr包的下述四个函数用法5.1 宽数据转为长数据:gather (excel透视表反向操作)5.2 长数据转为宽数据:spread (excel透视表功能)5.3 多列合并为一列:unit5.4 将一列分离为多列:separat
复制代码


5.1 宽数据转为长数据:gather()
类似excel透视表反向操作
图片解析参考:https://www.zhihu.com/collection/467554113#gather(data, key, value, …, na.rm = FALSE, convert = FALSE)
#data:需要被转换的宽形表#key:将原数据框中的所有列赋给一个新变量key
#value:将原数据框中的所有值赋给一个新变量value
#…:可以指定哪些列聚到同一列中#na.rm:是否删除缺失值
复制代码


5.2 长数据转为宽数据:spread()


类似excel透视表操作
图片解析参考:https://www.zhihu.com/collection/467554113
复制代码


5.3 多列合并为一列:unit()
复制代码

6.4 将一列分离为多列:separate()
复制代码



07

ggplot2:R语言经典可视化包


R语言 高阶可视化绘图系统:ggplot2入门 | 第8讲










二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群