美文网首页
长矩阵变成宽矩阵

长矩阵变成宽矩阵

作者: 因地制宜的生信达人 | 来源:发表于2018-12-21 12:49 被阅读35次

长矩阵变成宽矩阵

如果是简单的转换问题,我们的生信技能树: 生信编程直播第四题:多个同样的行列式文件合并起来 里面详细讲解了这个操作:http://www.biotrainee.com/thread-603-1-1.html

对表达矩阵来说,一个基因在一个样本里面,肯定只有一个表达量的,即使该基因有多个探针,我们一般也会选取某个探针来代表这个基因。当然了,如何选取,也是有学问的,而且也很考验代码技术。比如技能树的,多个探针对应一个基因,取平均值该怎么写:http://www.biotrainee.com/thread-2077-1-1.html

但是对CNV来说,一个基因可能是有多个值的,类似于针对同一个基因设计的多个探针的表达量不一致一样,如果简单的去整合转换,通常会报错。

核心代码

如果你的理解力还不错,看下面代码即可:

library(tidyr)
options(stringsAsFactors = F)
df=data.frame(sample=rep(LETTERS[1:3],each=3),
              value=runif(9),
              genes=rep(LETTERS[1:3],3) 
              )
df=rbind(df,c('A',5,'A'))
print(df)
df$value=as.numeric(df$value)
colnames(df)=c('sample','value','genes') 

我虚拟了一个数据,如下;

> df
   sample             value genes
1       A 0.258136499440297     A
2       A 0.602033647475764     B
3       A  0.43506146944128     C
4       B 0.818765353877097     A
5       B 0.870608947239816     B
6       B 0.844981355592608     C
7       C 0.965881496202201     A
8       C 0.785905135096982     B
9       C 0.170834832359105     C
10      A                 5     A

很明显,一般来说某个基因在某个样本肯定是只有一个表达量,但是我人为的使得A基因在A样本里面,有两个值,所以 简单的转换会失败。


spread(df,'genes','value')

报错如下;

Error: Duplicate identifiers for rows (1, 10)

简单谷歌就找到了以上解决方案,:https://stackoverflow.com/questions/30592094/r-spreading-multiple-columns-with-tidyr


library(data.table) ## v >= 1.9.6
 dcast(setDT(df),  genes ~ sample, fun.aggregate = mean )  


相关文章

  • 长矩阵变成宽矩阵

    长矩阵变成宽矩阵 如果是简单的转换问题,我们的生信技能树: 生信编程直播第四题:多个同样的行列式文件合并起来 里面...

  • R语言の宽矩阵转长矩阵

    一、长矩阵和宽矩阵 每个变量单独成一列的为宽矩阵,例如: 而长数据中变量的NACTG五种碱基类型并没有单独列成一列...

  • 转置矩阵和共轭矩阵

    矩阵的行和列交换之后变成转置矩阵。每个元素取复数共轭之后变成共轭矩阵。

  • 3.矩阵和列表

    ①变换向量在数据库或矩阵中的顺序 将第四列gene向量变成第一列 矩阵创建,查看矩阵行列数,矩阵取子集,矩阵行列置...

  • 矩阵的置换_线性代数_day18

    矩阵的转置的应用 矩阵的转置就是将矩阵的行和列进行转换,行变成列;列变成行 形式化 专置之后就是 证明: 证明:

  • 逆矩阵

    逆矩阵对任意矩阵,如果存在一个矩阵,使,则称矩阵可逆,矩阵为矩阵的逆矩阵。 奇异矩阵并不是所有的矩阵都有逆矩阵,没...

  • 1、矩阵的概念及运算

    一、什么是矩阵 矩阵的概念 特殊矩阵 零矩阵 行矩阵 列矩阵 方阵 对角阵(对角阵、纯量矩阵、单位矩阵 ) 三角...

  • 常见问题汇总

    那啥,cv领域的也写一些把~ 卷积,反卷积,以及 feature map 的计算 W:矩阵宽,H:矩阵高,F:卷积...

  • 矩阵代数(四)- 分块矩阵

    小结 分块矩阵 分块矩阵运算 分块矩阵的逆 分块矩阵 矩阵,也可写成分块矩阵的形状,它的元素是分块(子矩阵) 加法...

  • 基础矩阵、本质矩阵,单应矩阵及其解法

    本质矩阵,基础矩阵,单应矩阵,自由度及其解法基本矩阵、本质矩阵和单应矩阵基本矩阵的基本解法之8点算法单应矩阵与基础...

网友评论

      本文标题:长矩阵变成宽矩阵

      本文链接:https://www.haomeiwen.com/subject/sjemkqtx.html