[1] 学习初步
1.1 参考资料
R语言教程 李东风
R-bloggers
处理更大的数据(如 10~100 GB)data.table
1.2 R与R Stuido
Windows R各个版本:https://cran.r-project.org/bin/windows/base/old/
Windows R Studio: https://cran.r-project.org/bin/windows/Rtools/history.html
1.3 下载及导入包
# 安装tidyverse包
install.packages("tidyverse", lib="C:/R/R-4.2.0/library")
# 若出现package ‘xxx’ is not available for this version of R,可以用以下操作
#install.packages()
# 导入tidyverse包
library(tidyr, lib.loc = "C:/R/R-4.2.0/library")
# 取消导入tidyverse包
detach("package:tidyverse", unload = TRUE)
.libPaths("C:/R/R-4.2.0/library")
# 永久性更改,新建一个初始启动文件
file.edit('~/.Rprofile')
# Rprofile文件写下如下命令,保存后重启R Studio
.libPaths("C:/R/R-4.2.0/library")
1.4 tips
# 获取当前工作文件夹所在位置
getwd()
# 转变文件工作路径
setwd()
x = readline()
# 然后把WINDOWS路径直接复制粘贴过去,回车。然后键入:
gsub("\\\\", "/", x)
[2] 数据
2.1 变量命名规则
rec <- list(name="李明", age=30, scores=c(85, 76, 90))
#访问单个列表的元素必须使用两重方括号格式进行访问 or 用“$”进行访问
rec[3]
## $score
##[1] 85 76 90
rec[[3]]
## [1] 85 76 90
rec$scores
## [1] 85 76 90
as.numeric()
as.character()
factor(c(as.character(x1), as.character(x2)))
[2] 基本语法
^
乘方&& ||
短路的与、或逻辑%/%
整除 %%
取余 %*%
线代中矩阵的乘法%>%
把左边的输出传递给右边的函数作为输入,需先library(dplyr)
.
匹配除换行符 \n 之外的任何单字符。要匹配符号 . 使用\.
(转义)dim()
用于获取或设置指定矩阵、数组或 DataFrame 的维数~
:用于连接公式中响应变量和自变量,等同于数学公式中的等号
[3] 基本操作
devtools::session_info(c("tidyverse"))
想要明确指出某个函数( 或数据集) 的来源, 那么可以使用特殊语法形式package::function()
# 使用的是ggplot2 包中的ggplot() 函数
ggplot2::ggplot()
ggplot(data = <DATA>) +
<GEOM_FUNCTION>(mapping = aes(<MAPPINGS>))
ggplot() 的第一个参数是要在图中使用的数据集。
ggplot2 中的每个几何对象函数都有一个mapping 参数,这个参数定义了如何将数据集中的变量映射为图形属性。mapping 参数总是与aes() 函数成对出现,
[4] 画图
ggplot2 提供了30 多种几何对象,其扩展包甚至提供了更多(更多样例详见:https://www.ggplot2-exts.org)
ggplot2 速查见https://www.rstudio.com/resources/cheatsheets/
geom_bar(stat = "identity",color = "black",size = 1.5,alpha = 0.8,width = 0.6)
stat:设置统计方法,有效值是count和 identity;count:条形的高度是变量的数量,identity:是变量的值; position:位置调整,有效值是stack、dodge和fill;默认值是stack:两个条形图堆叠摆放,dodge:两个条形图并行摆放,fill:按照比例来堆叠条形图,每个条形图的高度都相等,但是高度表示的数量是不尽相同。 alpha:颜色透明度,0到1,1颜色最深 width:条形图的宽度,是个比值,默认值是0.9 color:条形图的线条颜色 fill:条形图的填充色
subset()
是对数据的某些字段进行操作intersect()
用于查找两个对象的交集
venn()
韦恩图