高级R语言(0)|导论:成为一名优秀的R程序员

Author

kili

Published

2024-10-01

写给谁?

在中文互联网中,关于R的基础教程已经很多了,其中我认为最适合入门且全面的当属李东风老师的R语言教程,但是缺乏高级教程— 即教你如何成为一名优秀的R语言程序员,优化配套环境,创建自己的包,优化R代码等等.

所以说,高级R语言系列适合想要更深入地了解 R、了解语言工作原理的中级 R 程序员,即你应当已经对R语言有一定的了解.

本系列以中文为主,但会保留一些必要的英文术语以免产生歧义.

将学到什么?

在这个系列中,基于「Advanced R」「R Packages (2e)」及我的自身R语言编程经验,您将学到以下内容:

  • 优化并熟悉Rsuidio设置,这将使您的工作更加高效(包括Github,copilot)

  • 熟悉 R 的基础。您将了解复杂的数据类型以及对它们执行操作的最佳方法。您将深入了解函数的工作原理,了解什么是环境,以及如何使用条件系统。

  • 了解函数式编程的含义

  • 了解 R 丰富的各种面向对象的系统。即 S3,S4 和 R6 类

  • 元编程(metaprogramming)

  • 对 R 中的哪些操作速度较慢或使用大量内存有很好的直觉。您将知道如何使用分析来查明性能瓶颈,并且您将了解足够的 C++ 来将慢速 R 函数转换为快速 C++ 等效函数。

  • 最后是理解并开发包

你将不会学到什么?

R的入门知识,数据结构,基础函数等

建模,绘图,数据分析…

现在让我们开始吧,附上此系列的R语言配套环境:

Code
```{r}
xfun::session_info()
```
R version 4.4.0 (2024-04-24 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 11 x64 (build 22631)

Locale:
  LC_COLLATE=Chinese (Simplified)_China.utf8 
  LC_CTYPE=Chinese (Simplified)_China.utf8   
  LC_MONETARY=Chinese (Simplified)_China.utf8
  LC_NUMERIC=C                               
  LC_TIME=Chinese (Simplified)_China.utf8    

Package version:
  base64enc_0.1.3    bslib_0.8.0        cachem_1.1.0       cli_3.6.2         
  colorspace_2.1-0   compiler_4.4.0     conflicted_1.2.0   digest_0.6.35     
  dplyr_1.1.4        evaluate_0.24.0    fansi_1.0.6        farver_2.1.2      
  fastmap_1.2.0      fontawesome_0.5.2  fs_1.6.4           generics_0.1.3    
  ggplot2_3.5.1      ggthemr_1.1.0      glue_1.7.0         graphics_4.4.0    
  grDevices_4.4.0    grid_4.4.0         gtable_0.3.5       highr_0.11        
  htmltools_0.5.8.1  htmlwidgets_1.6.4  isoband_0.2.7      jquerylib_0.1.4   
  jsonlite_1.8.8     knitr_1.48         labeling_0.4.3     lattice_0.22.6    
  lifecycle_1.0.4    magrittr_2.0.3     MASS_7.3.60.2      Matrix_1.7.0      
  memoise_2.0.1      methods_4.4.0      mgcv_1.9.1         mime_0.12         
  munsell_0.5.1      nlme_3.1.164       pillar_1.9.0       pkgconfig_2.0.3   
  R6_2.5.1           rappdirs_0.3.3     RColorBrewer_1.1.3 rlang_1.1.4       
  rmarkdown_2.28     rstudioapi_0.16.0  sass_0.4.9         scales_1.3.0      
  splines_4.4.0      stats_4.4.0        tibble_3.2.1       tidyselect_1.2.1  
  tinytex_0.52       tools_4.4.0        utf8_1.2.4         utils_4.4.0       
  vctrs_0.6.5        viridisLite_0.4.2  withr_3.0.1        xfun_0.47         
  yaml_2.3.10       

首先,优化Rstuido

事实上,Rstdio无疑是最好的R集成开发环境(如今使用python也十分方便),是我们可以通过一些设置使其更加高效.(已有大量介绍的常见设置我将不会谈及)

github与github copilot

常用addins