BGI-College生信入门——8、R语言基础(一)
什么是 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 包
1 | library() |
安装指定的 R 包
1 | install.packages () |
列出当前环境定义的变量
1 | ls () |
清空当前环境变量
1 | rm (list= ls (all= TRUE )) |
清空当前行命令
1 | Eas |
自动补全
1 | tab |
清屏
1 | Ctrl + L |
调出历史命令
1 | Ctrl + up |
列出当前目录下的所有文件
1 | list.files () |
返回当前路径
1 | getwd () |
设置工作路径
1 | setwd () |
列出文件前6行信息
1 | head () |
列出文件后6行信息
1 | tail () |
R 的数据类型
Vector | Matrix | Array | Data Frame | List | Factor |
---|---|---|---|---|---|
向量 | 矩阵 | 数组 | 数据框 | 列表 | 因子 |
判断数据类型
1 2 3 4 5 6 7 | # 方法一 class () typeof () # 方法二 is.vector () is.matrix () is.array () |
向量、矩阵和数组都是高等数学运算中常用的工具,在 R 中作为数据类型,可以更方便地操作数据对象
创建向量使用c()
1 2 3 | a <- c (1,2,3,4,5) print (a) [1] 1 2 3 4 5 |
创建矩阵可以使用 matrix() 函数
1 2 3 4 | ### 创建一个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 设置数组维度
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | ### 创建一个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() 函数
1 2 3 | 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() 函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | ### 创建一个纯数字的列表 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() 函数
1 2 | factor (x = character (), levels, labels = levels, exclude = NA , ordered = is.ordered (x), nmax = NA ) |
x:向量
levels:指定水平值,不指定时通过 as.character(x) 确定
labels:水平的标签, 不指定时用各水平值的对应字符串
exclude:形成水平值时需要排除的字符
ordered:逻辑值,用于指定水平是否有序
nmax:水平的上限数量
把字符型向量转换成因子
1 2 3 4 5 6 7 8 9 | 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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)