小工具知识网

当前位置: 首页 > 行业知识 > R语言基础入门(学习笔记通俗易懂版)

行业知识

R语言基础入门(学习笔记通俗易懂版)

2026-10-22 04:09:43 来源:互联网转载

文章目录

    • R语言预备知识
      • 获取工作目录
      • 设置工作目录
      • 注释
      • 变量名的命名
      • 赋值
      • 变量的显示
      • 查看与清除变量
      • 函数帮助文档查询
      • 函数
      • 安装R包
      • 文件的读取
      • 文件的输出
      • 软件的退出与保存
      • R语言语法
      • 向量
        • 向量的创建
        • 向量的索引(向量元素的提取、删除、添加)
        • 向量长度的获取
        • 向量的注意要点
        • 向量的计算
        • 向量的相关函数(部分)
        • NA与NULL值
        • 向量元素的筛选
        • 向量相等
        • 数据结构的查看
        • 控制语句
        • 矩阵
          • 矩阵的创建
          • 矩阵的索引
          • 矩阵相关操作及相关函数(部分)
          • apply()函数
          • 数据结构的查看
          • 列表
            • 列表的创建
            • 声明列表
            • 标签或者对象名的命名
            • 删除标签
            • 列表元素的索引
            • 列表元素的增减
            • 获取标签
            • 解除列表
            • 列表相关函数(部分)
            • 数据框
              • 数据框的创建
              • 数据框的索引
              • 数据框行列名的获取与更改
              • 数据框元素的增减
              • 数据框相关函数
              • 因子和表
                • 因子的创建
                • 因子的索引
                • 因子的修改
                • 因子常用函数
                • 表
                • 字符串
                  • 字符串操作的常见函数
                  • 正则表达式
                  • 数学运算与模拟
                  • R语言画图
                    • plot函数
                    • 1.图片的保存
                    • 2.par()函数图布局
                    • 3.main :设置主标题,sub:副标题
                    • 4.type,指线的类型
                    • 5.pch : 指定绘制点时使用的符号
                    • 6.`cex : 指定符号的大小,(默认是1)
                    • 7.lty:指定绘制线条时的类型,lwd:指定线条粗细
                    • 8.坐标轴标签
                    • 9.坐标轴范围
                    • 10.字体设置
                    • 11.title()函数
                    • 12.abline()函数添加线
                    • 13.lines()函数在现有图形上添加线
                    • 14.layout()函数图布局
                    • 15.添加图例
                    • 16.在图上添加文字
                    • 17.R的撤销图片操作
                    • **`*****`**
                    • **`*****`**

                      ���文为生信初学者在学习完R语言后,整理的知识点及学习方法与个人观点,方便需要的同志学习,使用生信或其他医学相关专业,欢迎各位大佬进行指点批评,有错误或者有不同观点可在评论区留言。 更新时间2023年3月21号

                      声明:本文仅为学习笔记,和实例记录,可供参考。

                      本文知乎地址:R语言基础入门(学习笔记通俗易懂版)

                      建议使用CSDN,因为代码有高亮

                      软件工具:R与Rstudio,先安装R再安装Rstudio。软件工具不过多介绍,安装方法可以参考在CSDN上各大佬的方法。本文代码为Rstudio中R软件框中的(Rstudio左下角框的,如下图),代码与结果便于直观展示。(建议使用电脑浏览本文代码,因为部分代码好长)


                      R语言预备知识

                      获取工作目录

                      使用getwd()函数获取当前工作目录,作用是查看当前工作目录在哪一个具体位置,C盘或者是其他,第一次使用可能会出现警告,但是也可以看到工作目录,你可以在运行一次代码,如下:

                      > getwd()[1] "C:/Users/橙/Documents"Warning message:In normalizePath(path.expand(path), winslash, mustWork) :  path[1]="C:/Users/?/Documents": 文件名、目录名或卷标语法不正确。> getwd()[1] "C:/Users/橙/Documents"

                      设置工作目录

                      使用setwd()函数更改当前目录,把工作目录更改到你存放你需要使用的数据包的那个位置,更便于直接重工作目录中读取,否者需要使用全路径。在使用函数是需要几点注意,请看以下代码:

                      > setwd("F:\R.cx")#工作目录的地址需要用双引号括起来,注意斜杠,这种单斜杠会报错Error: '\R' is an unrecognized escape in character string starting ""F:\R"> setwd("F:/R.cx")#这种单斜杠可以,能运行> setwd("F://R.cx")#这行与下一行的双斜杠都行> setwd("F:\R.cx")> 

                      注释

                      R语言的注释使用#号,写代码一定要常写注释,不然时间久了会忘记某代码的作用,便于后续操作。在Rstudio中可以使用Ctrl+shift+C经行多行注释。

                      变量名的命名

                      与其他语言的变量名命名差不多,主要要注意:数字不能开头;%号是非法字符,不可以用来命名;.号后面不可以跟数字;不可以下划线开头。变量名可以为与你操作相关的名字命名,如我要对一行身高的数据求均值:

                      higth4   #注意右箭头使用方法,被赋值的应该在右边,简单点说,就是某某赋值给谁,箭头就指向谁Error in 4  4->c> a      #键盘敲出变量名,回车后就会显示结果[1] 2> b[1] 3> c[1] 4> 

                      变量的显示

                      1.命令行直接输入变量名

                      2.利用print()函数,如下

                      > a a     #命令行直接输入变量名[1] 2> print(a)     #利用print()函数[1] 2

                      查看与清除变量

                      查看变量:ls()

                      清除指定变量:rm()

                      清除所有变量:rm(list=ls()) 如下:

                      > ls()     #查看变量,这个函数是查看所有已定义的变量,输出所有变量名[1] "a" "b" "c"> rm(a)    #清除变量a> rm(list=ls())    #清除所有变量

                      函数帮助文档查询

                      当遇到一个函数不会用时,可以使用帮助文档查询,结果会在Rstudio的右下角框里显示,方法有三种:

                      1.?+要查询的函数

                      2.使用help()函数查询

                      3.使用example()函数查询

                      我以求和函数sum()为例:

                      > ?sum> help(sum)> example(sum)

                      函数

                      R中含有大量的函数,比如求和函数sum(),求均值mean()等直接可以拿来使用的函数,但是往往在实际操作过程中,因为需求不同需要自己写函数,就是自定义函数,类似于C或C++中的自定义函数,我们来看一下R中如何自定义函数,请看如下代码:

                      >   #函数名 f+   k print(5)[1] 5

                      安装R包

                      安装R包需要使用install.packages()或者BiocManager::install()函数安装,library()函数调用,以安装openxlsx为例,如下:

                      #安装R包代码如下

                      install.packages(“openxlsx”)

                      #或BiocManager::install(“openxlsx”)

                      library(openxlsx)

                      文件的读取

                      有多个函数可以读取文件,一下介绍几种常用的

                      • scan()函数

                        scan(file = “”, what = double(), nmax = -1, n = -1, sep = “ ”),file=" " 的双引号里写文件地址,what写读入的数据类型,如果文件有好几种类型,可以啥也不写(what=" "),sep表示文件中数据的分隔符。举例如下

                        >   #我桌面上有一个txt文件,数字、字符都有,元素间隔为空格> scan(file="C://Users//橙//Desktop//juli.txt",what=" ",sep=" ")Read 6 items[1] "1"       "2"       "2"       "3"       "你干嘛" [6] "!哎呦~"
                        • readline()函数

                          从键盘中读入一行数据,举例如下:

                          > duru2 duru2[1] "Hello Worl"> duru3 duru3[1] "\"喝,为什么不喝,他奈奈滴\""
                          • readLines()函数

                            可以一次性读取整个文件,可以限制读取的行数,举例如下:

                            >   #返回结果会出现警告,原因是读取的文件每一行后(包括最后一行)必须包括换行符,我这个文件无> readLines("C://Users//橙//Desktop//juli.txt")[1] "1 2 2 3 你干嘛 !哎呦~" "我滴任务完成啦!"      [3] "你坤哥厉不厉害!"      Warning message:In readLines("C://Users//橙//Desktop//juli.txt") :  incomplete final line found on 'C://Users//橙//Desktop//juli.txt'>  #n=2表示读取前两行,因为第二行有换行符,所以不会出警告> readLines("C://Users//橙//Desktop//juli.txt",n=2)[1] "1 2 2 3 你干嘛 !哎呦~" "我滴任务完成啦!"      
                            • read.table()函数

                              这个函数对于医学专业学生来讲,十分重要,主要用于读取矩阵数据框文件(可以读取.xlsx格式文件),

                              read.table(file, header = FALSE, sep = “”, quote = “”'",dec = “.”, numerals = c(“allow.loss”, “warn.loss”, “no.loss”),row.names, col.names, as.is = !stringsAsFactors,na.strings = “NA”, colClasses = NA, nrows = -1,skip = 0, check.names = TRUE, fill = !blank.lines.skip,strip.white = FALSE, blank.lines.skip = TRUE,comment.char = “#”,allowEscapes = FALSE, flush = FALSE,stringsAsFactors = FALSE,fileEncoding = “”, encoding = “unknown”, text, skipNul = FALSE)

                              file文件名(包在" "内,或使用一个字符型变量),可能需要全部路径(注意即使是在Windows下,符号\也不允许包含在内,必须使用/替换),或者一个URL链接(http://···)(用UPL对文件远程访问)
                              header一个逻辑值(FALSE,TRUE),用来反映这个文件的第一行是否包含变量名
                              sep文件中的字段分离符,例如对用制表符的文件使用sep=“\t”
                              quote指定用于包围字符型数据的字符
                              dec用来表示小数点的字符
                              row.names保存着行名的向量,或文件中的一个变量的序号或名字,缺省时行号取为1,2,3····
                              col.names指定列名的字符型的向量(缺省值是:v1,v2,v3····)
                              as.is控制字符型向量是否转化为因子型变量(如果值为FALSE),或者仍将其保留为字符型(TRUE)。as.is可以是逻辑值,数值型或者字符型向量,用来判断变量是否保留为字符
                              na.strings代表缺失数据的值(转化为NA)
                              colClasses指定各列的数据类型的一个字符型向量
                              nrows可以读取的最大行数(忽略负值)
                              skip在读取行数据前跳过的行数
                              check.names如果为TRUE,则检查变量名是否在R中有效
                              fill如果为TRUE,且非所有的行中变量数目相同,则用空白补齐
                              ······
                              • read.xlsx()函数

                                读入.xlsx文件,使用该函数需要安装"openxlsx包"。

                                文件的输出

                                • write.table()函数,参数与read.table()对应,
                                  > write("Hello,wrold","C://Users//橙//Desktop//juli.txt")
                                  • cat()函数,举例如下:
                                    > cat("hello wrold",file="C://Users//橙//Desktop//juli.txt",append=T)#追加写入,(里面有内容)> cat("hello wrold",file="C://Users//橙//Desktop//juli1.txt")  #覆盖写入,里面的内容被覆盖了

                                    软件的退出与保存

                                    1.可以直接输入q()函数;也可以右上角直接叉掉,后根据提示操作

                                    2.当写完一个文件时,可以点击保存按钮,根据提示选择保存位置,文件后缀有多种,看你保存哪种文件,有.R、.Rdata等后缀,.R一般是保存代码的,.Rdata是保存处理后的数据的。

                                    保存数据

                                    可以使用**save()**函数,可以保存多种格式的文件

                                    > save(b,file="xxx.Rdata") #保存b,文件是xxx,格式为.Rdata> save(b,c,file="xxx.Rdata")  #保存b,c,文件是xxx,格式为.Rdata> save.image("xxx.Rdata")  #保存所有(你定义的所有变量及数据),文件是xxx,格式为.Rdata

                                    R语言语法


                                    向量

                                    向量(vector)是R语言的最基本的数据类型、R语言的核心、R语言中的战斗机 ,向量是用于存储数值型、字符型或逻辑型数据的一维结构。

                                    向量的创建

                                    1.可以使用c()创建一个向量,如:

                                    > a a b c d d                   #我们看一下d里的内容,发现全部为FALSE,可以理解为空向量里值都为FALSE [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE [9] FALSE FALSE

                                    向量的索引(向量元素的提取、删除、添加)

                                    我们有一个向量后,我想知道里面第几个第几个的内容,我们可以使用中括号[]进行索引。如:

                                    > a a[2]           #我查看a中第2个元素,返回结果为2[1] 2> a[4]           #我查看a中第4个元素,返回结果是4[1] 4> a[c(1,3)]  #我查看a中第1和第3个元素,可以使用向量的方式一次查看多个[1] 1 3> c a[c]    #结果可以看到,返回的是TRUE对应位置的元素,这个操作我不知道教材上有没有,这是我意外摸索出来的[1] 1 3

                                    1.向量中元素的更改,直接进行索引赋值,如下

                                    > a a[2] a            #看一下a中的元素,唉~~,没错它变了(窃喜)[1] 1 4 3 4 5> a[c(1,5)] a             #再次看一下[1] 7 4 3 4 7

                                    2.向量中元素的删除

                                    上面讲到索引是用[],里面写上元素位置,位置是数字,正的!!!那么是负的会怎样呢???嗯!没错,负数

                                    索引是查看删除那个位置后的结果,注意单纯的负索引出来的结果是没有改变原向量的,我们需要重新赋值,给它一个新的变量名(不用新的也行,但会把原来的覆盖掉),废话不多说,直接看如下代码:

                                    > a     #没错,又用了上面个那个向量a,up真没创意(梆梆给阿婆主两拳)[1] 7 4 3 4 7>> a[-2]  #我负索引以下第2个位置,返回的结果与a的区别是,把第2位删掉了[1] 7 3 4 7> a     #我们在看一下a,返回结果尽然没有把第2为删掉,那怎么办??那就给他一个新的名字吧![1] 7 4 3 4 7>> e e         #上面我们用了e去接受我们需要的,我们看一下是否赋值到了,运行这行代码后发现结果是我想要的[1] 7 3 4 7>> a a    #查看一下a,对的是我想要的(满意)······(十分钟后)我原本的a呢?啊~~,救命,被我覆盖掉了(螺旋升天)[1] 7 3 4 7   #所以不要轻易覆盖掉原来的变量,万一后面要用到呢?>>    #升级以下,看看能不能用向量一次性多删几个> a f1 f1              #结果是可以的[1] 2 4 5> f2 f2[1] 2 4 5>>   #突发奇想,如果a[],中括号里面的向量里面与外面都有负号呢?试一试!> f3 f3        #f3的结果显示第1位与第3位的元素,嗯~~,那就可以理解为负负得正,直接把a中的第1和3位赋值给f3[1] 1 3> f4

上一篇:戴尔台式机主机内存

下一篇:轻松掌握英语表达技巧,全解析指南