class: center, middle, inverse, title-slide # R语言学习攻略 ## R语言:从0到1 ### Studennt. LJJ ### 2020-08-26 --- class: inverse, center, middle # 初识R语言 --- ### 下载 -- - [R官网](https://cran.r-project.org/mirrors.html)和[Rstudio官网](https://rstudio.com/products/rstudio/download/) - [Git](https://git-scm.com/downloads) - [Python官网](https://www.anaconda.com/products/individual) -- 注意:R和Rstudio必须安装在同一个目录下!!! -- ### R的应用 -- - **统计分析** -- - **可视化** -- - **机器学习** -- - **沟通交流** -- - **数据分析** -- - **网络爬虫** --- class: inverse, center, middle # Base R --- ## 下载R包 -- **第一种方法** ```r if (!requireNamespace("dplyr")) install.packages("dplyr") ``` -- **第二种方法** ```r if (!requireNamespace("xaringan")) devtools::install_github("yihui/xaringan") ``` -- **第三种方法** 本地下载安装:分为二进制和Source两种方式 以上三种安装方式视频教程有介绍,视频在**R,Rstudio,python和git安装**一节 --- ## R语言基本语法 -- ```r 1 + 1 ``` ``` ## [1] 2 ``` ```r 2 * 5 ``` ``` ## [1] 10 ``` -- ```r head(mtcars,6) ``` ``` ## mpg cyl disp hp drat wt qsec vs am gear carb ## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4 ## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4 ## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1 ## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1 ## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2 ## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1 ``` --- ## R语言基本语法 ```r mtcars[1:2,1:5] ``` ``` ## mpg cyl disp hp drat ## Mazda RX4 21 6 160 110 3.9 ## Mazda RX4 Wag 21 6 160 110 3.9 ``` ```r mtcars[1:8] ``` ``` ## mpg cyl disp hp drat wt qsec vs ## Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 ## Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 ## Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1 ## Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1 ## Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0 ## Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1 ## Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0 ## Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1 ## Merc 230 22.8 4 140.8 95 3.92 3.150 22.90 1 ## Merc 280 19.2 6 167.6 123 3.92 3.440 18.30 1 ## Merc 280C 17.8 6 167.6 123 3.92 3.440 18.90 1 ## Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.40 0 ## Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.60 0 ## Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.00 0 ## Cadillac Fleetwood 10.4 8 472.0 205 2.93 5.250 17.98 0 ## Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.82 0 ## Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.42 0 ## Fiat 128 32.4 4 78.7 66 4.08 2.200 19.47 1 ## Honda Civic 30.4 4 75.7 52 4.93 1.615 18.52 1 ## Toyota Corolla 33.9 4 71.1 65 4.22 1.835 19.90 1 ## Toyota Corona 21.5 4 120.1 97 3.70 2.465 20.01 1 ## Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.87 0 ## AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.30 0 ## Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.41 0 ## Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.05 0 ## Fiat X1-9 27.3 4 79.0 66 4.08 1.935 18.90 1 ## Porsche 914-2 26.0 4 120.3 91 4.43 2.140 16.70 0 ## Lotus Europa 30.4 4 95.1 113 3.77 1.513 16.90 1 ## Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.50 0 ## Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.50 0 ## Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 ## Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 ``` --- ## Base R 图形 Base R的图形美观度一般,但是经过修改应该会有所改善,但是这不如直接使用ggplot语法格式,更加美观,代码量更少! ```r boxplot(Sepal.Length~Species,data = iris) ``` <img src="PPT_files/figure-html/unnamed-chunk-7-1.png" style="display: block; margin: auto;" /> --- ## 线性回归 ```r library(tidyverse) lm(displ ~ hwy,data = mpg) %>% broom::tidy() ``` ``` ## # A tibble: 2 x 5 ## term estimate std.error statistic p.value ## <chr> <dbl> <dbl> <dbl> <dbl> ## 1 (Intercept) 7.37 0.221 33.3 2.78e-90 ## 2 hwy -0.166 0.00916 -18.2 2.04e-46 ``` --- ## ggplot 图形 ggplot2容易学习,只要有数据,想绘制什么样的图形都可以,随心所欲,对于绞尽脑汁而不能想出来的图形,问大神,多谷歌,基本都可以解决。 下边牛刀小试: <img src="PPT_files/figure-html/unnamed-chunk-9-1.png" style="display: block; margin: auto;" /> --- class: inverse, center, middle # tidyverse --- ## tidyverse的核心包 ### 安装和使用 ```r # install.packages("tidyverse") library(tidyverse) ``` tidyverse的核心内容包括您可能在日常数据分析中使用的软件包。 -- - 可视化:[ggplot2](https://ggplot2.tidyverse.org/) -- - 数据操作和转换:[dplyr](https://dplyr.tidyverse.org/)和[tidyr](https://tidyr.tidyverse.org/) -- - 读写数据:[readr](https://readr.tidyverse.org/) -- - 函数式编程:[purrr](https://purrr.tidyverse.org/) -- - 新型数据框:[tibble](https://tibble.tidyverse.org/) -- - 字符串处理:[stringr](https://stringr.tidyverse.org/) --- ## tidyverse的其它包 Tidyverse还包括许多其他具有更专业用途的软件包。 -- - 导入数据: - [DBI](https://github.com/r-dbi/DBI):数据库 - [haven](https://haven.tidyverse.org/):读写SAS、SPSS和Stata数据 - [httr](https://github.com/r-lib/httr):web APIs - [readxl](https://readxl.tidyverse.org/):读写Excel数据 - [rvest](https://github.com/tidyverse/rvest):网络爬虫 - [JSON](https://github.com/jeroen/jsonlite#jsonlite):解析JSON - [xml2](https://github.com/r-lib/xml2):xml -- - 编程: - [magrittr](https://magrittr.tidyverse.org/):管道操作 - [glue](https://github.com/tidyverse/glue):组合数据 --- ## tidyverse的其它包 -- - 处理特定数据: - [lubridate](https://lubridate.tidyverse.org/):处理时间数据 - [hms](https://github.com/tidyverse/hms):处理时间数据 - [blob](https://github.com/tidyverse/blob):存储blob (binary)数据 - [forcats](https://forcats.tidyverse.org/):处理分类和因子等变量 -- - 模型分析: - [tidymodels](https://www.tidymodels.org/) - [caret](https://topepo.github.io/caret/data-splitting.html) --- class: inverse, center, middle # 沟通交流 --- ## R Markdown -- - [Bookdown](https://bookdown.org/yihui/bookdown/):如何写一本书 -- - [Blogdown](https://bookdown.org/yihui/blogdown/):如何搭建个人博客 -- - [Xaringan](https://arm.rbind.io/slides/xaringan.html#1):如何制作PPT -- - [Rmarkdown](https://rstudio.com/resources/cheatsheets/):如何用R Markdown写代码 -- - [Vitae](https://pkg.mitchelloharawild.com/vitae/):如何更新简历 -- --- class: inverse, center, middle # 如何学习R语言 --- ## 学习R语言的方法 -- - 1、规避陷阱:慎入群、慎入论坛、慎提问、慎写代码,多思考、多谷歌、多测试 -- - 2、学习策略: - 循序渐进、多读[经典图书](https://bookdown.org/home/) - 多读系统帮助;多写测试代码 - 站在巨人的肩膀上(不是自己慢慢写代码实现已存在功能) -- - 3、初级阶段: - 成体系、成系统的学习R语言:数据分析数据可视化和计量等 -- - 4、中高级阶段:以软件包为核心 -- - 5、高级方法: - 扫描式学习软件包,重点自己领域的软件包即可 - 建立自己的示例代码库,直接调用,定期重构代码 - 翻译扩展软件包 --- ## 经常浏览的博客和网站 -- - [R library](https://cran.r-project.org/web/packages/available_packages_by_date.html):记录每天更新的R包 -- - [R Views](https://rviews.rstudio.com/):R语言的博客 -- - [R bloggers](https://www.r-bloggers.com/):世界上最大的R社区博客 -- - [R News](https://www.r-craft.org/category/r-news/):R每周新闻 -- - [R 杂志](https://www.jstatsoft.org/index):发表R的杂志 -- - [R 教程](https://data-flair.training/blogs/r-tutorials-home/):R等软件系列教程 -- - [CRAN Task Views](http://cran.r-project.org/web/views):R在各种学术和研究领域的应用情况 -- - [awesome R](https://github.com/qinwf/awesome-R):分类整理优秀的R包 -- - [Rstudio Blog](https://blog.rstudio.com/):Rstudio公司的博客 -- - [Bookdown系列](https://bookdown.org/):优秀的R语言书,由bookdown包书写 --- -- ## 个人项目 - [可视化](https://jmxsy2016.github.io/Learning-visualization/):一系列R可视化教程和有用的R可视化包集合 - [数据科学](https://github.com/jmxsy2016/Data-Science-and-Economics):数据科学与经济学项目,涉及各种编程和学术信息 -- ## 多浏览Github项目和推特 - 如何充分使用GitHub工具 - 如何使用推特开展学术研究 - 跟踪R语言动态和一些R数据科学家 -- ## 阅读高质量书的方法 - R数据科学 - [Happy Git and GitHub for the useR](https://happygitwithr.com/) - [现代科研指北](https://bookdown.org/yufree/sciguide/) - ... ## --- class: inverse, center, middle # 致谢 本幻灯片由 R 包 [**xaringan**](https://github.com/yihui/xaringan) 生成,感谢Rstudio各位的开发人员!