B站课程:生信必备技巧之R语言基础教程全集的代码笔记

1.R语言包安装

rm(list = ls())
# 设置镜像:
options()$repos
options()$BioC_mirror
#options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")
options(BioC_mirror="http://mirrors.tuna.tsinghua.edu.cn/bioconductor/")
options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))
options()$repos
options()$BioC_mirror# 方法一:
options()$repos
install.packages('WGCNA')
install.packages(c("FactoMineR", "factoextra"))
install.packages(c("ggplot2", "pheatmap","ggpubr"))
library("FactoMineR")
library("factoextra")# 方法二:
if (!requireNamespace("BiocManager", quietly = TRUE))install.packages("BiocManager")
BiocManager::install("KEGG.db",ask = F,update = F)
BiocManager::install(c("GSEABase","GSVA","clusterProfiler" ),ask = F,update = F)
BiocManager::install(c("GEOquery","limma","impute" ),ask = F,update = F)
BiocManager::install(c("org.Hs.eg.db","hgu133plus2.db" ),ask = F,update = F)# 方法三:从github中安装# 所有的R包都提交上传到CRAN,如Github,需要通过一定的渠道进行安装
# R安装devtools包
install.packages("devtools")
library(devtools)
# 安装github上的R包(需翻墙或改hosts)
devtools::install_github('lchiffon/REmap')
# 前为github的用户名,后为包名# 测试--加载R包;
library(GSEABase)
library(GSVA)
library(ggplot2)
library(ggpubr)
library(pheatmap)library(REmap)
library(org.Hs.eg.db)
library(limma)
library(hgu133plus2.db)
library(clusterProfiler)if (!requireNamespace("BiocManager", quietly = TRUE))install.packages("BiocManager")
BiocManager::install("clusterProfiler")

2.向量

a = 1
b <- TRUE
d = "abc"class(a)
class(b)
class(d)
a <- c(1,2,5,3,6,-2,4)
b <- c("one", "two", "three")
d <- c(TRUE, TRUE, TRUE, FALSE, TRUE, FALSE)a <- c(1:10)
b <- seq(1,10,2)
x <- 3
value1 <- 4
d <- rep(x,times = value1)a <- c(1,2,3,4,5,6,7)a[3]
a[c(1,3,4)]
a[2:6]
a[c(1,2)] <- c(11,22)
#删除第一个元素(加负号)
a[-1]
a[-2]
a[1]a <- paste("a","b","c",1:3,sep = '')
ab <- paste("a","b","c",2:4,sep = '+')
bc <- paste("a","b","c",1:3,sep = '+',collapse = '----')
csum(1:100)# 取向量中最小最大的值:
min(x)
max(x)# 求的是取得最小(大)值的第几个分量
which.min(x)
which.max(x)
sum(x)  # 求和
median(x)   # 求中位数
prod()  # 求积
var()  # 方差、
mean() # 平均值等
sort() # 给x排序,默认递增
rev() # 倒序
order() # 给出递增的序列号
a[order(a)]

3.逻辑运算

#NA代表缺失,NULL代表数据不存在
#NA,占位符,意味着这里没有一个值,但是位置存在
length(c(NA,NA,NULL))
c(NA,NA,NULL,NA)#比较大小
c(1,2,3,4)>2
a = c(1,2,3)
b = a >2#从一个线性表中筛选出大于等于60且小于70的数据
vector = c(10,40,78,64,53,66,70)
vector2 = vector[vector>=60&vector<70]#与或非
vector[vector>=60 | vector<30]
vector[!vector>60]#删除所有变量
rm(list = ls())

4.字符串操作

#大小写转换
toupper('Run') #大写
tolower('Run') #小写# 统计字符串长度
nchar("中文",type = "bytes")  # 统计字节长度
nchar("中文",type = "char")  # 统计字符数量#截取字符串
substr("12345678",1,5) #截取字符串,从1到5
substring("12345678",5) #截取字符串,从5开始一直到结束#将字符串转换为数字
a = "123"
num = as.numeric(a)
num = as.numeric("12")# 将数字转换为字符串
as.character(12.33)#分割符拆分字符串
a = strsplit("2022;6;1",";")
a# 替换字符串
gsub("/","-","2022/6/1")#正则表达式
gsub("[[:alpha:]]+","$","abc one tow three") #字母
gsub("[[:alnum:]]+","$","12 23 33") #数字

5.矩阵

5.1 矩阵创建

#创建矩阵
matrix(data = NA,nrow = 1,ncol = 1,byrow=FALSE,dimnames = NULL)
# data 向量,矩阵的数据; nrow行数;ncol列数;
# byrow 逻辑值,为FALSE按列排列,为TRUE按行排列;dimname设置行和列的名称;#byrow = TRUE
# 1 2 3 4
# 5 6 7 8#byrow = FALSE
# 1 3 5 7
# 2 4 6 8y <- matrix(1:20,nrow = 5, ncol = 4, byrow = TRUE)
yy <- matrix(1:20,nrow = 5, ncol = 4) #默认byrow = FALSE
y# 指定行名和列名
cells <- c(1,26,24,68)
ranmes <- c("R1","R2")
cnames <- c("C1","C2")
mymatrix <- matrix(cells,nrow=2,ncol=2,byrow = TRUE,dimnames = list(rnames,cnames))#byrow为TRUE元素按行排列
M <- matrix(c(3:14),nrow = 4, byrow = TRUE)# Ebyrow为FALSE元素按列排列
N <- matrix(c(3:14),nrow = 4, byrow = FALSE)# 行名和列名也可在创建完矩阵之后再定义:
rownames(N) = c("row1","row2","row3","row4")
colnames(N) = c("col1","col2","col3")

5.2 矩阵操作

# 创建矩阵
x <- matrix(1:10,nrow = 2)#访问第二行
x[2,]# 访问第二列
x[,2]#访问第一行第四个元素:
x[1,4]#修改矩阵中的元素
#修改一整行
x[2,] <- c(11:15)#修改某个元素:
x[1,4] <- 10#获取矩阵的维度
dim(x)#获取矩阵的行数和列数
dim(x)[1]
dim(x)[2]nrow(x)
ncol(x)#转置矩阵 t(M)
M <- matrix(c(1:6),nrow = 2,ncol = 3,byrow = TRUE)
M
t(M)#矩阵简单加减乘除:必须行数和列数都相等
m1 <- matrix(c(1,2,3,4,5,6),nrow = 2)
m2 <- matrix(c(6,5,4,3,2,1),nrow = 2)
m1+m2
m1-m2
m1*m2
m1/m2#线性代数中的矩阵相乘:要求第一个矩阵的列数等于第二个矩阵的行数
m1 <- matrix(c(1,2,3,4,5,6),nrow = 2, ncol = 3)
m2 <- matrix(c(6,5,4),nrow = 3,ncol = 1)
m1 %*% m2# 矩阵求行,列之和,平均数
a <- matrix(1:10,2,byrow = TRUE)
a
rowSums(a) #按行求和
colSums(a) #按列求和mean(a) #均值
rowMeans(a) #行均值(返回一个向量)
colMeans(a) #列均值(返回一个向量)
mean(rowMeans(a))
mean(colMeans(a))# 矩阵行拼接,列拼接
#rnorm随机生成一组符合正态分布的小数,Console下:?rnorm获取用法
a <- matrix(rnorm(15),5,3)
b <- matrix(rnorm(15),5,3) #从1到10之间取三个随机整数数字,且不能重复
sample(1:10,3,replace = F)
#从1到10之间取10个随机整数数字,且可以重复
sample(1:10,10,replace = T)cbind(a,b) #列拼接
rbind(a,b) #行拼接# 求逆矩阵 solve()函数
a <- matrix(sample(1:10,16,replace = T),nrow = 4)
solve(a)#矩阵与其逆矩阵的乘积为单位矩阵,round()取整函数
round(solve(a)%*%a)#奇异矩阵不存在逆矩阵,但是可以计算其广义逆矩阵
a <- matrix(1:16,4,4)
library(MASS)
ginv(a)mat <- matrix(1:16,4,4)
diag(mat) #提取矩阵的主对角线元素# 生成对角线为1的4×4对角矩阵
m <- diag(4)# 求矩阵的特征值和特征向量
d <- matrix(c(17,22,27,22,29,36,27,36,45),3,3)
d.e = eigen(d)#矩阵的奇异值分解
A <- matrix(1:18,3,6)
A.s <-  svd(A)
A.s$u%*%diag(A.s$d)%*%t(A.s$v)

6.数组

# array() 函数语法格式如下:
array(data = NA,dim = c(2,3,4),dimnames = NULL)
# data向量,数组元素
#dim数组的维度,默认是一维数组
#dimnames维度的名称,必须是个列表,默认情况下是不设置名称的#创建数组
dim1 <- c("A1","A2","A3")
dim2 <- c("B1","B2","B3")
dim3 <- c("C1","C2","C3")
z <- array(1:27,c(3,3,3),dimnames = list(dim1,dim2,dim3))#访问数组中的元素
#显示数组第二个矩阵中第三行的元素
print(z[3,,2])#显示数组第一个矩阵中第一行第三列的元素
print(z[1,3,1]) # 行 列 高#输出第二个矩阵
print(z[,,2])# 从数组中创建矩阵
matrix1 <- z[,,1]
matrix2 <- z[,,2]

R语言基础知识-学习笔记汇总相关推荐

  1. R语言基础知识入门学习(一)

    目录 系列文章目录 一.软件下载 二.基本知识 1. 对象 2. 向量 3. 向量化 4. 因子 总结 系列文章目录 R语言基础知识入门学习(一) 一.软件下载 我们可以通过这个网址对R语言软件进行下 ...

  2. Python基础知识学习笔记——Matplotlib绘图

    Python基础知识学习笔记--Matplotlib绘图 整理python笔记,以防忘记 文章目录 Python基础知识学习笔记--Matplotlib绘图 一.绘图和可视化 1.导入模块 2.一个简 ...

  3. R语言与机器学习学习笔记(分类算法)

    转载自:http://www.itongji.cn/article/0P534092014.html 人工神经网络(ANN),简称神经网络,是一种模仿生物神经网络的结构和功能的数学模型或计算模型.神经 ...

  4. 图像基础知识学习笔记

    图像基础知识学习笔记 文章目录 图像基础知识学习笔记 前言 一.图像基础知识相关笔记 1.光学系统影响图像的结构主要包括什么? 2.常见噪声都有什么,其分类,及特点? 3.光圈,快门,景深? 4. I ...

  5. Python 基础知识学习笔记——OpenCV(1)

    Python 基础知识学习笔记--OpenCV(1) OpenCV是一个开源的跨平台计算机视觉和机器学习软件库,它轻量而且高效,被广泛的使用. 整理一下OpenCV学习笔记,以防忘记. 文章目录 Py ...

  6. python基础知识学习笔记(1)

    python 基础知识学习笔记(1) 总结一下Python基础知识,以防忘记. 文章目录 python 基础知识学习笔记(1) 一.起步 1.python安装与编译环境 二.变量和简单数据类型 三.列 ...

  7. oracle数据库基础知识总结,oracle数据库基础知识学习笔记

    oracle数据库基础知识学习笔记 一.oracle数据库类型: Char:  字符型(最大长度2000,定长.不足时以空格补充) Varchar2:字符型 最大长度 4000,变长,实际长度由存储的 ...

  8. Python基础知识学习笔记(一)

    Python基础知识学习笔记(一) 文章目录 Python基础知识学习笔记(一) (一) 认识python 1.注释 2.变量及类型 3.关键字(标识符) (1)什么是关键字? (2)查看关键字 (3 ...

  9. opencv-python基础知识学习笔记

    opencv-python基础知识学习笔记 原博地址:https://www.cnblogs.com/silence-cho/p/10926248.html 目录: opencv-python基础知识 ...

最新文章

  1. 如果你铁了心要好好搞科研,我强烈建议你看一下这个帖子
  2. sap 一代增强_SAP增强Enhancement
  3. 叉乘点乘混合运算公式_初中数学学不会?公式这样记,让你做题效率翻倍!
  4. vue实现打印功能的两种方法/web打印控件
  5. 机器学习-西瓜书第一、二章
  6. python pytorch自定义_Pytorch 实现自定义参数层的例子
  7. 利用EasyRecovery深度扫描功能将桌面误删文件恢复
  8. 如何保护前端JS代码?前端js代码混淆加密
  9. 2021年,小傅哥の年终总结
  10. Scala快速入门(适用于学习Spark)
  11. 高等数学(第七版)同济大学 总习题四(前半部分) 个人解答
  12. 骗子借新浪微博三周年活动为名诈骗
  13. Redhat7.4 同步阿里云镜像rpm包并自建本地yum仓库
  14. js调用swift相册DEMO(网易新闻)
  15. 热血传奇技术的一些基础知识
  16. vue关于element日历calendar组件上月、今天、下月、日历块点击事件
  17. 读书笔记-人月神话1
  18. 4.贪心算法 含例题
  19. egg的Cookies,取不到值的问题
  20. 哪家建站系统的模板比较好?

热门文章

  1. Android一键加QQ群
  2. 局域网中的两台主机共享一台显示器
  3. 两台笔记本电脑共享屏幕(其中一台电脑当做另外一台电脑的扩展屏幕,多屏显示)
  4. 八字计算方法 php,php计算四柱(生辰八字)的方法
  5. hihoCoder挑战赛16 王胖浩与三角形
  6. NOTA-WL12,68Ga-NOTA-WL12一种基于肽的正电子发射断层扫描 (PET) 显像剂
  7. 【微信小程序】上传文件到阿里云OSS
  8. 材质自发光过曝之后变白的问题
  9. PHP修改图片上的文字,ps图片中怎么更改文字
  10. php一句话木马调用cmd命令,一句话木马(webshell)是如何执行命令的