在微博有位朋友问我可达矩阵的计算,于是发了点时间用R语言写出来了。 问题如下: 计算过程: 注意:是矩阵的乘法。
——荀子 这篇文章讲述的是R语言中关于向量与矩阵的相关知识。希望这篇R语言文章对您有所帮助!...:rbind(),cbind() 1、rbind() # 按行组合矩阵 > rbind(x1,x2) [,1] [,2] [,3] [,4] [,5] x1 2 4 6...8 0 x2 1 3 5 7 9 2、cbind() # 按列组合矩阵 > cbind(x1,x2) x1 x2 [1,] 2 1 [2,] 4...超过部分 NA自动补齐 > letters[1:30] [1] "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r"...此部分为矩阵的一些写法以及计算技巧 1、matrix()函数 创建矩阵用matrix()函数 > a1 <- c(1:12) # 创建一个三行四列的矩阵 > matrix(a1,3,4
矩阵 矩阵(matrix)是一种特殊的向量,包含两个附加的属性:行数和列数,R生存矩阵按列存储 注意:向量不能看成只有一行或者一列的矩阵,二者不能混为一谈 矩阵的创建 利用matrix()函数 例如 matrix...","r2"),c("c1","c2","c3"))) > mydata3 c1 c2 c3 r1 1 3 5 r2 2 4 6 2.利用函数将向量接起来 rbind()函数:按行接起来...) #按照行把两个矩阵连接起来 Error in rbind(A, mymatrix_colmean1) : 矩阵的列数必需相符(见arg2) > rm(list = ls()) > mymatrix...) #按照行把两个矩阵连接起来 > a <- c("r1","r2","r3","r4","r5","列均值") > b <- c("a1","a3","a3","a4","a5","行均值",) Error...) #按照行把两个矩阵连接起来 > a <- c("r1","r2","r3","r4","r5","列均值") > b <- c("a1","a2","a3","a4","a5","行均值") > dimnames
作者:张丹(Conan) 来源:http://blog.fens.me/r-matrix/ 前言 R 是作为统计语言,生来就对数学有良好的支持。矩阵计算作为底层的数学工具,有非常广泛的使用场景。...用R语言很好地封装了,矩阵的各种计算方法,一个函数一行代码,就能完成复杂的矩阵分解等操作。让建模人员可以更专注于模型推理和业务逻辑实现,把复杂的矩阵计算交给R语言来完成。...本文总结了 R 语言用于矩阵的各种计算操作。 1....[U,S,V]=svd(A),其中 U 和 V 分别代表两个正交矩阵,而 S 代表一对角矩阵。和 QR 分解法相同, 原矩阵 A 不必为正方矩阵。...语言,我们实现了对于矩阵的各种计算操作,非常方便!
今天,小编教大家用R语言绘制常用的多维数据展示图——气泡矩阵图。 首先,我们需要准备输入文件。 ?...准备好输入文件后,我们就可以打开R画图啦~ ## 导入R包 library("ggplot2") ## 导入数据 data <- read.table("input.txt",header = T,sep...简单几步,气泡矩阵图就画好啦~大家赶快试试吧! 具体细节大家可以搜索ggplot2的相关参数,根据自己的需求调整或者将图片导出为PDF格式,通过Adobe illustrator调整。
有时候我们会按照两个条件来对数据排序。假设我们手上有下面这套数据,9个人,第二列(score)为他们的考试成绩,第三列(code)为对应的评级。80分以上为优秀,60-80为良,60以下为差。...我们就会得到如下结果 那么这个过程怎么在R里面实现呢?今天我们就来探讨一下。主要用的是R中的order这个函数。...只需要前面加个负号就可以了 View(file[order(file$Code,-file$Score),]) 下面是按照code升序,然后再按score降序排列的结果,是不是跟Excel处理的结果一样 在R里面我们还可以指定
R语言中的常用数据结构,包括向量、矩阵、数组、列表和数据框。关于数据结构的使用,我们将分四篇文章分别介绍每种数据结构的操作方法和代码示例。...为方便大家理解记忆,对每种数据结构的基本操作概括为四大类:创建数据结构往里面添加数据从里面查询数据对里面的数据进行修改这篇文章我们将介绍矩阵的使用矩阵矩阵是R语言中的一种二维数据结构,它是由一系列相同类型的元素组成的矩形数组...[,2]# [1,] 1 4# [2,] 2 5# [3,] 3 6# 使用两个向量创建一个2行3列的矩阵,按行填充m2 <- matrix(data = c(c(7...例如:# 使用rbind()函数将两个向量按行组合成一个矩阵m3 <- rbind(c(13, 14), c(15, 16))m3# [,1] [,2]# [1,] 13 14# [2...,] 15 16# 使用cbind()函数将两个矩阵按列组合成一个新的矩阵m4 <- cbind(m1, rbind(m2, rep(NA, 3)))m4# [,1] [,2] [,3
2)由已有数据转换或处理得到 (3)读取表格文件 (4)R语言内置数据(没有赋值就可以直接使用的数据,例如iris) 2.新建数据框* 读取文件 df2<-read.csv("gene.csv") df2...#读取"gene.csv"文件,赋值df2 3.数据框属性 4.数据框取子集 df1$gene #"$"前是数据框名称 后是列名;提取该列的向量 #按名字取子集 df1 行,列 图片 5.数据框修改...取子集,赋值 #改行名和列名 rownames(df1) <- c("r1","r2","r3","r4") #修改全部行名 #只修改某一行/列的名 colnames(df1){2} <- "CHANGE..." #修改一个列名 6.两个数据框的连接 按照共同的列名取交集,后连接 两个数据框列中有交集时既可以使用,自动连接 矩阵新建和取子集 矩阵画热图 pheatmap::pheatmap(m) #热图结果默认聚类...cluster_rows = F) #修改默认聚类 列表新建和取子集(列表可装万物) x[1] x$m1 #列表取子集 元素的“名字”-names() 后置的难点 数据框按照逻辑值取子集 #将逻辑值赋值给k,按逻辑值在
分享一篇我CSND博客里面的R语言矩阵操作, 可以通过编程理解很多线性代数的概念....round(solve(a)%*%a) 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 3.6 矩阵的广义逆矩阵 对于奇异阵,并不存在逆矩阵,但是可以计算其广义逆矩阵 a <- matrix...A <- matrix(c(1,2,3,3,2,1),2,3) A 1 3 2 2 3 1 B <- matrix(c(1,0,6,1),2,2) B 1 6 0 1 r1 <- dim(A)[...1];c1 <- dim(A)[2] r2 <- dim(B)[1];c2 <- dim(B)[2] direct_sum <- rbind(cbind(A,matrix(0,r2,c2)),cbind...(matrix(0,r1,c1),B)) direct_sum 1 3 2 0 0 2 3 1 0 0 0 0 0 1 6 0 0 0 0 1 欢迎关注我的公众号:R-breeding
著名的科学杂志《Nature》于1999年刊登了两位科学家D.D.Lee和H.S.Seung对数学中非负矩阵研究的突出成果。...该文提出了一种新的矩阵分解思想――非负矩阵分解(Non-negative Matrix Factorization,NMF)算法,即NMF是在矩阵中所有元素均为非负数约束条件之下的矩阵分解方法。 ?...上图引自网络(有出处请告知),NMF的思想:V=WH(W权重矩阵、H特征矩阵、V原矩阵),通过计算从原矩阵提取权重和特征两个不同的矩阵出来。...今天我们给大家讲下在R语言中是如何实现的。先来看下NMF包的安装。这个有点麻烦,我们首先必须要把我们的R版本升级到3.6及以上,因为有个rngtools的依赖包所需要的环境是3.6及以上。 ?...<- nmf(V.random, 2:6,nrun=10, seed=123456) # plot measures on same graph plot(estim.r, estim.r.random
# =============================================================== # ==========...
#矩阵Matrix 三个参数:内容(可省),行数,列数 > x <- matrix(1:6,nrow = 3,ncol = 2) #第一个是内容,第二个,第三个是行列 > x[1,2] [1] 4...> #维度属性 > dim(x) [1] 3 2 > #查看矩阵的属性 > attributes(x) $`dim` [1] 3 2 > #由向量来创建矩阵的方法 > y <-1:6 > dim(y)...= 2,ncol = 3) > y2 [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 > rbind(y,y2) #列相同,按行拼接...[1,] 1 3 5 [2,] 2 4 6 [3,] 1 3 5 [4,] 2 4 6 > cbind(y,y2) #行相同,按列拼接...[,3] [,4] [,5] [,6] [1,] 1 3 5 1 3 5 [2,] 2 4 6 2 4 6 > #使用列表给矩阵的行列命名
——荀子 这篇文章讲述的是R语言中关于矩阵与数组的相关知识。希望这篇R语言文章对您有所帮助!如果您有想学习的知识或建议,可以给作者留言~ 矩阵是一个按照长方阵列排列的复合或实数集合。...向量是一维的,而矩阵是二维的,需要有行和列。 在R软件中,矩阵是有维数的向量,这里的矩阵元素可以是数值型,字符型或者逻辑型,但是每个元素必须都拥有相同的模式,这个和向量是一致的。...R语言中比较出名的矩阵 iris3 state.x77 # 美国五十个州八个指标 使用heatmap()函数可以直接绘制热图 ?...2 6 10 14 18 [3,] 3 7 11 15 19 [4,] 4 8 12 16 20 # byrow=TURE按行排列...,访问行 > m[,"C1"] R1 R2 R3 R4 1 2 3 4 5、矩阵的运算 此部分为矩阵的一些写法以及计算技巧 1、t()函数 实现矩阵的转置,行变列,列变行 >
a的行数", nrow(a))) [1] "矩阵a的行数 5" > print(paste("矩阵a的列数", ncol(a))) [1] "矩阵a的列数 4" > > #查看或设置行列名 > rownames...TRUE > is.matrix(a) [1] TRUE > is.data.frame(a) [1] FALSE > is.data.frame(as.data.frame(a)) [1] TRUE R中矩阵运算...数据产生 # rnorm(n, mean = 0, sd = 1) 正态分布的随机数 # runif(n, min = 0, max = 1) 平均分布的随机数 # rep(1,5) 把1重复5次 # scale...(1:5) 标准化数据 > a <- c(rnorm(5), rnorm(5,1), runif(5), runif(5,-1,1), 1:5, rep(0,5), c(2,10,11,13,4), scale...0.0000000 D 13 1.338366 4 0.6324555 0.0000000 E 4 1.000000 5 1.2649111 1.0916224 R中矩阵筛选合并
在R语言中可以使用scale方法来对数据进行中心化和标准化: #限定输出小数点后数字的位数为3位 > options(digits=3) > data <- c(1, 2, 3, 6, 3) #数据中心化...> scale(data, center=T,scale=F) [,1] [1,] -2 [2,] -1 [3,] 0 [4,] 3 [5,] 0 attr(,"scaled...:center") [1] 3 #数据标准化 > scale(data, center=T,scale=T) [,1] [1,] -1.06904 [2,] -0.53452 [3,]...0.00000 [4,] 1.60357 [5,] 0.00000 attr(,"scaled:center") [1] 3 attr(,"scaled:scale") [1] 1.8708 scale...方法中的两个参数center和scale的解释: 1.center和scale默认为真,即T或者TRUE 2.center为真表示数据中心化 3.scale为真表示数据标准化
上次小编教大家用R语言绘制气泡矩阵图后,好多朋友都在后台留言问小编怎么给气泡矩阵图上色,今天小编就教大家怎么给气泡矩阵图上个色 ! 不管我们做什么组学分析,分析到最后总是躲不过富集分析。...富集分析我们可以使用R包" clusterProfiler "进行(具体教程见使用clusterProfiler对非模式生物进行富集分析)。...准备好输入文件后,输入以下代码 : ## 导入R包 library("ggplot2") ## 导入数据 data <- read.table("input.txt",header = T,sep="...= Description, size = Count, color=qvalue)) + geom_point() +xlab("Enrichment Factor") ## 修改气泡颜色 p + scale_color_gradient...如果想要更改其他颜色,可以在scale_color_gradient 函数中修改。 参考资料: ggplot2|详解八大基本绘图要素
数据框数据框的创建数据框来源主要包括用代码新建(data.frame),由已有数据转换或处理得到(取子集、运算、合并等操作),读取表格文件(read.csv,read.table等)及R语言内置数据函数..."),each = 2), score = c(5,3,-2,-4))df1数据框通过csv及txt导入*csv文件可用excel打开(直接打开),记事本打开,或用R语言读入...应选用header=T#2.读取ex2.csv 导入后生成一个数据框#ex2 <- read.csv("ex2.csv") #读入该文件后会发现原文件第一列被错误当作数据而非行名,且列名的.变成了-,R语言将列名的特殊字符...","r2","r3","r4") #修改所有行名colnames(df1)[2] <- "CHANGE" #列出所有行名后取出下标为2的元素赋值修改数据框的连接merge函数可连接两个数据框,通过指定公共列使具有相同元素的行的列合并...#Rdata是真实存在的文件,保存了数据框、向量、矩阵等变量而不是csv等表格文件#Rdata只有save与load两个操作,格式如下save(soft,file = "soft.Rdata")rm(list
专题6-表达矩阵画箱线图GEO的芯片数据处理可能要用到这些这边放到第六个专题详细写一下先生成一个随机的矩阵set.seed(10086) # 为了我的结果能在你的电脑重复,设置了种子exp = matrix...(rnorm(18),ncol = 6) ;exp # 通过18个随机数,生成3行6列的矩阵## [,1] [,2] [,3] [,4]...1.82 -1.62## gene2 -1.74 0.37 2.08 2.11 -0.22 1.42## gene3 1.57 1.25 1.32 2.49 0.58 -0.81运行几个R包...library(tidyr)library(tibble)library(dplyr)现在开始处理数据,将其转化为一个R语言看得懂的数据框顺便复习下之前讲过的管道符号dat = t(exp) %>% #...treat gene1 -1.62## 17 test6 treat gene2 1.42## 18 test6 treat gene3 -0.81处理完数据就可以开始画图了R语言作图
在此简单说明:times-将整个向量中所有元素视作整体,重复三次;each则是将指定向量中,每一个元素按顺序进行重复指定次数(这边为3)## [1] "a" "a" "a" "b" "b" "b" "...三个a分别对应了k1,12个随机数中的前三个值,那条线是三个值的中位数(不是平均值哦)3.向量、数据框、矩阵、列表#先简单介绍下这些名字吧。# 1.向量是组成数据框以及矩阵的基本单位。...3.1 数据框来源# (1)用代码新建# (2)由已有数据转换或处理得到# (3)读取表格文件# (4)R语言内置数据3.1.1 新建和读取数据框df1 <- data.frame(gene = paste0...#数据框可以由不同数据类型的向量组成,但矩阵不行。...','r2','r3','r4')colnames(df1)[2] = 'CHANGE' 3.1.6 两个数据框的链接#随便建两个数据框test1 <- data.frame(name = c('jimmy
领取专属 10元无门槛券
手把手带您无忧上云