行业知识
R语言基础入门(学习笔记通俗易懂版)
文章目录
- 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,格式为.RdataR语言语法
向量
向量(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
- cat()函数,举例如下:
- write.table()函数,参数与read.table()对应,
- read.xlsx()函数
- read.table()函数
- readLines()函数
- readline()函数
- scan()函数
上一篇:戴尔台式机主机内存
下一篇:轻松掌握英语表达技巧,全解析指南