什么是 R?
R 是用于统计和作图的免费软件 可在各种 UNIX 平台、Windows 和 MacOS 上编译和运行
R 的组成
一种语言、带有图形的运行环境、调试器、访问某些系统功能以及运行脚本文件中程序的能力
R 的安装
R installation on Unix-like
R installation on Windows
R installation on Mac
什么是 RStudio
RStudio 是 R 的集成开发环境 (Integrated Development Environment, IDE)
RStudio 的组成
一个控制台、支持直接代码执行的语法高亮编辑器,以及用于绘图、历史记录、调试和工作区管理的工具
RStudio 的安装
注意 RStudio 安装需预先安装 R ,并在同一个磁盘
Tips
查看所有已安装的 R 包
library()
安装指定的 R 包
这里是引用
install.packages()
列出当前环境定义的变量
ls()
清空当前环境变量
rm(list=ls(all=TRUE))
清空当前行命令
Eas
自动补全
tab
清屏
Ctrl + L
调出历史命令
Ctrl + up
列出当前目录下的所有文件
list.files()
返回当前路径
getwd()
设置工作路径
setwd()
列出文件前6行信息
head()
列出文件后6行信息
tail()
R 的数据类型
Vector | Matrix | Array | Data Frame | List | Factor |
---|---|---|---|---|---|
向量 | 矩阵 | 数组 | 数据框 | 列表 | 因子 |
判断数据类型
# 方法一
class()
typeof()
# 方法二
is.vector()
is.matrix()
is.array()
向量、矩阵和数组都是高等数学运算中常用的工具,在 R 中作为数据类型,可以更方便地操作数据对象
创建向量使用c()
a <- c(1,2,3,4,5)
print(a)
[1] 1 2 3 4 5
创建矩阵可以使用 matrix() 函数
### 创建一个1行5列的矩阵
matrix(data = a, nrow = 1, ncol = 5, byrow = FALSE, dimnames = NULL)
[,1] [,2] [,3] [,4] [,5]
[1,] 1 2 3 4 5
data 向量 nrow 行数 ncol 列数 byrow 逻辑值,按行或列排序 dimnames 设置行列名称
创建数组使用 array() 函数,该函数使用向量作为输入参数,可以使用 dim 设置数组维度
### 创建一个2行3列的二维数组
b <- c(6,7,8)
array(data = c(a,b), dim = c(2,4,2), dimnames = NULL)
, , 1
[,1] [,2] [,3] [,4]
[1,] 1 3 5 7
[2,] 2 4 6 8
, , 2
[,1] [,2] [,3] [,4]
[1,] 1 3 5 7
[2,] 2 4 6 8
### 创建一个2行2列的二维数组
array(data = c(a,b), dim = c(2,2,2), dimnames = NULL)
, , 1
[,1] [,2]
[1,] 1 3
[2,] 2 4
, , 2
[,1] [,2]
[1,] 5 7
[2,] 6 8
data:向量 dim:数组维度,默认是一维 dimnames:维度名称,默认不设置
Data Frame 数据框,特殊的二维数据列表,要求每一列长度相同,同一列数据类型一致
创建数据框使用 data.frame() 函数
data.frame(..., row.names = NULL, check.rows = FALSE,
check.names = TRUE, fix.empty.names = TRUE,
stringsAsFactors = FALSE)
…:列向量(字符型、数值型、逻辑型),以 tag = value 形式表示,也可以直接用 value
row.names:行名,默认不设置,可设置为单个数字或字符串的向量 check.rows:检查行的名称和长度是否一致
check.names:检查数据框的变量名是否合法 fix.empty.names:设置未命名的参数是否自动设置名称
stringsAsFactors:布尔值,字符是否转换为因子,在 R 4.0.0 中默认为FALSE
List 列表是 R 语言的对象集合,用来保存不同类型的数据(数字、字符串、向量、列表、矩阵和函数)
创建列表使用 list() 函数
### 创建一个纯数字的列表
list_a <- list(1,2,3,4,5)
print(list_a)
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
[[4]]
[1] 4
[[5]]
[1] 5
### 创建一个包含向量、矩阵和列表的列表
list_b <- list(c(4,5,6),matrix(c(1,2,3,4),nrow = 2),list("BGI","College",2022))
print(list_b)
[[1]]
[1] 4 5 6
[[2]]
[,1] [,2]
[1,] 1 3
[2,] 2 4
[[3]]
[[3]][[1]]
[1] "BGI"
[[3]][[2]]
[1] "College"
[[3]][[3]]
[1] 2022
### 使用 names() 函数给列表元素命名
names(list_b) <- c("vector","matrix","list")
print(list_b)
$vector
[1] 4 5 6
$matrix
[,1] [,2]
[1,] 1 3
[2,] 2 4
$list
$list[[1]]
[1] "BGI"
$list[[2]]
[1] "College"
$list[[3]]
[1] 2022
Factor 因子用于存储不同类别的数据类型,例如球类可以分为篮球、足球、排球、羽毛球、乒乓球等等
创建因子使用 factor() 函数
factor(x = character(), levels, labels = levels,
exclude = NA, ordered = is.ordered(x), nmax = NA)
x:向量
levels:指定水平值,不指定时通过 as.character(x) 确定
labels:水平的标签, 不指定时用各水平值的对应字符串
exclude:形成水平值时需要排除的字符
ordered:逻辑值,用于指定水平是否有序
nmax:水平的上限数量把字符型向量转换成因子
ball <- c("basketball","football","volleyball","badminton","pingpong")
ball_type <- factor(ball)
print(ball_type)
[1] basketball football volleyball badminton pingpong
Levels: badminton basketball football pingpong volleyball
### 判断数据类型是否为因子
is.factor(ball_type)
[1] TRUE