写给谁?
在中文互联网中,关于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也十分方便),是我们可以通过一些设置使其更加高效.(已有大量介绍的常见设置我将不会谈及)