形式参数由函数作者指定,使用者输入实际参数时可省略实际参数 函数的自定义 #自定义函数 cal = function(a,b,c = 2){(a+b)*c} #c=2为函数默认值 cal(1,2) cal(1,2,3) #函数默认值可更改 输出结果: R包的安装 R包库:CRAN、Bioconductor CRAN:R包默认的安装库 Bioconductor:生信相关的R包库 #设置CRAN和Bioconductor mirrors.tuna.tsinghua.edu.cn/CRAN/")) options(BioC_mirror="http://mirrors.ustc.edu.cn/bioc/") #CRAN安装R包 相当于library(BiocManager)和install() R包安装常见问题 package not available R包名输入错误 安装命令使用错误 R语言版本与R包要求不符(极少情况) R包过时,被作者删除 加载某一R包,报错提醒另一R包不存在 安装所需的依赖包 更新所有安装包 not writable / permission denied 权限问题,管理员方式打开Rstudio
}##a,b,m为形式参数;jimmy为函数名称;m的默认值为2;##大括号内为编写函数使用的代码;> jimmy(a = 1,b = 2)[1] 9> jimmy(1,2)[1] 9> jimmy(3,6 ,-2)[1] 0.01234568plot(iris[,1],col = iris[,5])plot(iris[,2],col = iris[,5])plot(iris[,3],col = iris[ #当一个代码需要复制粘贴三次,就应该写成函数或使用循环jimmy <- function(i){ plot(iris[,i],col=iris[,5])}jimmy(1)jimmy(2)jimmy(3) jimmy(4)安装R包多个函数打包存放包含函数,数据,帮助文档,描述文件等。 找到R包的使用规律R包的位置:CRANinstall.packages("tidyr")R包的位置:bioconducterBiocManager::install("ggplot2")R包的位置:githubdevtools
(文中图片引用于生信技能树小洁老师PPT,仅用于自己学习,不用于商业目的,如有侵权,立即删除)Part3 数据框、矩阵和列表 vector向量 一维 matrix 新建数据框 从文件中读取3. 数据框的属性4. 数据框取子集 a. "$"取列b. R包的介绍3. R包的镜像4. R包的来源和安装方式 (1)CRAN网站 (2)Bioconductor (3)github5. XX包怎么安6. 常见的疑问学R语言要高冷,能no就no,no不行再yes;学1inx要听话,让你yes你就yes记忆卡片问是否更新,“不存在”的是依赖包 R包如何使用获取帮助
#行名,列名,两者合一,加列/行名dim()colnames()rownames()#加列名即为对向量进行赋值;修改单个列名,取子集即可m <- matrix(1:12,nrow = 3);mcolnames (m) <- c("a","b","c","d") colnames(m)[1] <- "hello";m#融合函数merge(test1,test3,by.x = "name",by.y = "NAME gene",1:4), change = rep(c("up","down"),each = 2), score = c(5,3,
由于两个原因,列表成为了R中的重要数据结构。首先,列表允许以一种简单的方式组织和重新调用不相干的信息。其次,许多R函数的运行结果都是以列表的形式返回的。需要取出其中哪些成分由分析人员决定。 R中一些头麻的地方 对象名称中的句点(.)没有特殊意义,但美元符号($)却有着和其他语言中的句点类似的含义,即指定一个数据框或列表中的某些部分。例如,A$x是指数据框A中的变量x。 x <- x[1:3]会重新将其缩减回三个元素。 ❏ R中没有标量。标量以单元素向量的形式出现。 ❏ R中的下标不从0开始,而从1开始。在上述向量中,x[1]的值为8。 ❏ 变量无法被声明。 这些是面向开发者的R语言,很多反常规的设计 也许输入数据最简单的方式就是使用键盘了。有两种常见的方式:用R内置的文本编辑器和直接在代码中嵌入数据。我们首先考虑文本编辑器。 R中的函数edit()会自动调用一个允许手动输入数据的文本编辑器。
在 https://www.promptcloud.com/blog/data-visualization-text-mining-taylor-swift-song-lyrics/ 这篇文章里找到了答案
读入本地文件read()getwd() # 读取文件之前可以先查看下R的工作目录[1] "C:/Users/myxc/Documents"> setwd("D:/R") # 设置R的工作目录> getwd /demo.RDS") # 保存R中的变量到R专用的数据格式中> getwd()[1] "D:/R"> input_iris <- readRDS(". 3.5 1.4 0.2 setosa2 4.9 3.0 1.4 0.2 setosa3 /RData/.RData") # 加载R文件> save(iris, iris3, file = "c:/Users/myxc/Desktop/demo.Rdata") # 保存R工程文件> save.image () # 保存当前R工程文件
学习资源来自生信星球R包R包直接在Rstudio页面下载的3大来源:官网CRAN、Biocductor、github设置镜像CRAN的镜像网站可以直接在tools-global options(或快捷键 mirrors.tuna.tsinghua.edu.cn/CRAN/")) options(BioC_mirror="https://mirrors.westlake.edu.cn/bioconductor")命令安装具体R包来自哪里 ,谷歌必应搜索即可install.packages("stringr")BiocManager::install("limma")加载R包library()或require()都可以library(limma semi_join(x = test1, y = test2, by = 'x')#反连接,返回不能与y表匹配的x表所有记录anti_join(x = test1, y = test2, by = 'x')列名下3或 4个字母的缩写,是变量的类型:int:整数型变量dbl:双精度浮点数型变量,即实数chr:字符串dttm:日期+时间型变量lgl:逻辑型变量fct:因子,R中具有固定数目的值的分类变量date:日期型变量深刻感受不同连接的区别存疑问题
#mapply(函数/函数名,数据,函数相关的函数) > list(rep(1,4),rep(2,3),rep(3,2),rep(4,1)) [[1]] [1] 1 1 1 1 [[2]] [1] 2 2 2 [[3]] [1] 3 3 [[4]] [1] 4 > mapply(rep,1:4,4:1) [[1]] [1] 1 1 1 1 [[2]] [1] 2 2 2 [[3]] [1 ] 3 3 [[4]] [1] 4 > s <- function(n,mean,std){ + rnorm(n,mean,std) + } > s(4,0,1) [1] 0.23803199 -0.34249791 -0.12654519 -0.02443351 > list(s(1,5,2),s(2,4,2),s(3,3,2),s(4,2,2),s(5,1,2)) [[1]] [1] 1.097834 [[2]] [1] 3.348059 2.867686 [[3]] [1] 0.7296542 3.2896896 3.7186395 [[4]] [1] 1.08987561 1.41372263
R语言数据挖掘实战系列(3) 三、数据探索 通过检验数据集的数据质量、绘制图表、计算某些特征量等手段,对样本数据集的结构和规律进行分析的过程就是数据探索。 (2)3σ原则。如果数据服从正态分布,在3σ原则下,异常值被定义为一组测定值中与平均值的偏差超过三倍标准差的值。如果数据不服从正态分布,也可以用远离平均值的多少倍标准差来描述。 判定系数是相关系数的平方,用r2表示;用来衡量回归方程对y的解释程度。判定系数取值范围:0≤r2≤1。 r2越接近于1,表明x与y之间的相关性越强;r2越接近于0,表明两个变量之间几乎没有线性相关关系。 R语言主要数据探索函数 统计特征函数 统计特征函数用于计算数据的均值、方差、标准差、分位数、相关系数、协方差等,这些统计特征能反映出数据的整体分布。
tony <NA> 138#练习3-1#table(test$Strand)#练习2-3#m <- matrix(1:9,nrow = 3)m## [,1] [,2] [,3 (m);a1## a b c## 1 1 4 7## 2 2 5 8## 3 3 6 9t(a1)## [,1] [,2] [,3]## a 1 2 3## b 4 $score>0]## [1] "gene1" "gene2"R Markdown*数据框来源(1) 用代码新建(2) 用已有数据转换或处理得到(3) 读取表格文件(存在于R语言之外的文件,只操作数据框而不修改表格 )(4) R语言内置数据(heatmap(volcano);iris;letters;LETTERS),并非所有内置数据都是数据框**代码新建数据框df1 <- data.frame(gene = paste0 12,23,50,2)#新增一列("$"后使用新列名)df1$p.value <- c(0.01,0.02,0.07,0.05)#行(列)名的修改等价于修改向量rownames(df1) <- c("r1
专题3.条件和循环1.条件语句-if(){}1.1 只有if# if()里的内容一定得是逻辑值,可以是你写上的T和F,也可以是运算结果# 若运算结果为T或者你写上了T,他就会执行后续语句,反之则不执行# # 3个参数# ifelse(x,yes,no)# x:逻辑值或者逻辑向量;yes:逻辑值为T时的返回值;no:逻辑值为F时的返回值# 简单示范i = 1ifelse(i>0,'+','-')## [1 " "-" "+"# 与字符检测函数str_detect()进行连用,用之前别忘记加载R包library(stringr)# 1.随便生成一个向量,取名样本。 其中包含3个tumor和3个normalsamples = c("tumor1","tumor2","tumor3","normal1","normal2","normal3")# 2.利用str_detect ifelse写i = 0ifelse(i>0,"+",ifelse(i<0,"-","0")) # 简单的嵌套结构,大家可以先从看懂模仿开始## [1] "0"补充:case_when()# 用之前先加载R包
在关联分析(1):概念及应用中我们介绍了关联分析的基本概念及应用场景,关联分析(2):Apriori产生频繁项集我们介绍了Apriori算法的原理,本篇文章我们将进行关联分析的R语言演示。 R语言实现 我们对UCI机器学习库上下载的美国众议院议员投票记录数据,进行关联分析。在R中,可以直接调用arules包中的apriori()函数训练模型。 导入包与数据。
10.319216 -3.697041 24.565294 -9.691016 -7.324058 [6] -6.185308 -2.107426 -1.915519 13.306308 22.763153 3. 指数分布 函数:rexp(n,lamda = 1),n 表示生成的随机数个数,lamda=1/mean > x = rexp(10,3) > x [1] 0.13044259 0.52299630 0.35504953 其他 除了生成上面介绍的几种分布的随机数,还可以生成poisson分布、t 分布、F 分布等很多种分布的随机数,只要在相应的分布名前加“r”就可以。 ? 除了在分布名前面加r还可以加其他的参数,例如:p,q,d。功能见下图: ?
作为一门数据处理语言,逻辑运算在R中承担着非常非常重要的作用。本专题就专门为大家整理一下R语言中的逻辑运算:TRUE/FALSE. x 逻辑非补充 xor(x,y)异或:xor(T,F)返回TRUEall(x)all()是在全部为TURE时返回T,any(x) any()是存在任何一个TRUE时返回TRUE R语言逻辑运算中额外注意 (2)在R中,所有非零值在逻辑运算中都会被当作为TRUE。 > TRUE & FALSE #返回[1] FALSE > 0.2 & 0 #返回[1] FALSE (3)在R语言中标量常被看作含有一个元素的向量,但在逻辑运算中是存在差异。 = 0)) X1 X3 X4 X5 1 0 0 0 0 2 -1 1 2 3 注图片来自于tidyverse网站:https://www.tidyverse.org/ 示例3:自建函数
R语言meta分析⑴meta包 R语言meta分析(2)单个率的Meta分析 R语言meta分析(3)亚组分析 原始研究中常常采用亚组分析的形式探索入组患者潜在的差异。 第三,过度的亚组分析可能存在数据挖掘的嫌疑,亚组分析的结果有时也并不可靠,因为亚组分析从某种程度上说破坏了原始研究的随机性,所以亚组分析的数量必须是有限的、事先确定的,一般来说分组因素应尽可能控制在3个以内
安装完成之后,你将会看到一个朴实无华的图标,没错,这就是 R 语言本尊了。 ? R 语言简单实例 主要工作已经完成,让我们动动小手,优雅的单击(或双击)R Studio 图标,来感受一下R 语言的魅力。 Show the different plot types plot> x <- 0:12 plot> y <- sin(pi/5 * x) plot> op <- par(mfrow = c(3,3 小结 到此为止,R 语言就已经顺利的收入囊中了,恭喜你,又掌握了一门语言(的 Hello world)了。 【此处应有掌声】 接下来,会继续介绍 R 语言的基本用法和其中比较重要的函数使用方法,目标是能使用 R 语言对数据进行初步分析,以便能在生活和工作之中有所应用。
作业讲解 R data 文件:存储有用变量,传递数据 save load # 使用save()函数保存为RData文件 # 创建一些要保存的变量 study1.df <- data.frame(id = 读取表格文件 (4)R语言内置数据 2.新建和读取数据框 # data.frame 函数 df1 <- data.frame(gene = paste0("gene",1:4), 50 0.07 ## 4 gene4 down 2 0.05 #改行名和列名 rownames(df1) <- c("r1","r2","r3","r4") #只修改某一行 [1] 1 2 3 m[2,3] ## c ## 8 m[2:3,1:2] ## a b ## [1,] 2 5 ## [2,] 3 6 m ## a b c ## [1,] 1 4 7 ## [2,] 2 5 8 ## [3,] 3 6 9 t(m) # 转置 ## [,1] [,2] [,3] ## a 1 2 3 ## b 4 5 6
> #维度属性 > dim(x) [1] 3 2 > #查看矩阵的属性 > attributes(x) $`dim` [1] 3 2 > #由向量来创建矩阵的方法 > y <-1:6 > dim(y) <- c(2,3) > dim(y) [1] 2 3 > y2 <- matrix(1:6,nrow = 2,ncol = 3) > y2 [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 > rbind(y,y2) #列相同,按行拼接 [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 [3,] 1 3 5 [4,] 2 4 6 > cbind(y,y2) #行相同,按列拼接 [,1] [,2] [,3] [,4] ] 3 6
问题 如何使用R软件计算下列统计量:均值、中位数、标准差、方差、协方差和相关系数。 R软件中,用简单的函数便能完成标准差和其他基本统计量的计算。 R软件对于缺失值的敏感程度有时会造成用户的不便,但这种处理方式也是合情合理的。 对于R软件返回的结果你应该慎重地考虑:数据中的缺失值是否会严重影响统计结果? 如果是,那么R软件返回错误结果是正确的;如果不是,则可以通过设置参数na.rm=TRUE, 告知R软件忽略缺失值: > x <- c(0,1,1,2,3,NA) > mean(x, na.rm=TRUE