数据格式转换 | 稀疏矩阵3列还原为原始矩阵/数据框,自定义函数 df3toMatrix()

1. 输入3列

只要前三列,第一列是行名,第二列是列名,第三列为值。

复制代码
> head(df.net2.order)
       from             to   strength type
12439 CSTF2 ENST0000056844 -0.6859788  neg
12015 CSTF2 ENST0000056190 -0.5153181  neg
11208 CSTF2          GAPDH -0.4570489  neg

2. 输出数据框

行为基因调控因子,列为基因表达,值为相关系数。

复制代码
> df.net2.df=df3toMatrix(df.net2.order)
> dim(df.net2.df)
[1]   27 4022
> df.net2.df[df.net2.df==0]=NA
> df.net2.df[1:4,1:5]
       ENST0000056844 ENST0000056190      GAPDH ENST0000063431       ARL6
CSTF2      -0.6859788     -0.5153181 -0.4570489     -0.4380417 -0.4351847
NUDT21             NA     -0.4719560 -0.4080007             NA -0.4125685
CPSF3      -0.4883905     -0.3955025 -0.4318929             NA -0.4517824
CPSF1              NA     -0.3722944 -0.3625508             NA -0.3016818

3. 转换函数

复制代码
# from 3 columns to matrix: col1-row, col2-col, col2-value
df3toMatrix=function(df3){
  rows.id=df3[,1] |> unique()
  cols.id=df3[,2] |> unique()
  
  output=data.frame(matrix(0, nrow=length(rows.id), ncol=length(cols.id)))
  rownames(output)=rows.id
  colnames(output)=cols.id
  
  for(i in 1:nrow(df3)){
    output[df3[i, 1], df3[i, 2]]=df3[i,3]
  }
  output
}

ref

相关推荐
小辉同志5 小时前
74. 搜索二维矩阵
c++·leetcode·矩阵·二分查找
不知名的老吴10 小时前
R语言4.3.0安装包百度网盘中文版下载与详细安装指南
开发语言·r语言
战族狼魂11 小时前
40x40 矩阵控制系统
jvm·oracle·矩阵
一只小小的土拨鼠1 天前
【国奖冲刺/全网首发】2026年第十四届“泰迪杯”A、B、C题完整解题思路、代码与高质量论文大合集
c语言·矩阵·数据挖掘
AAIshangyanxiu1 天前
基于R语言机器学习方法在生态经济学领域中的实践应用
人工智能·机器学习·r语言·生态经济学·经济学
普中科技1 天前
【普中 51-Ai8051 开发攻略】-- 第 10 章 矩阵按键实验
单片机·嵌入式硬件·矩阵·开发板·普中科技·ai8051u·aicube
歪歪歪比巴卜1 天前
2026年AI新媒体运营工具怎么选?核心功能与适用场景解析
大数据·矩阵·新媒体运营
阿_旭1 天前
【深度学习实战】Mask R-CNN肺部分割全流程:从数据到模型的完整指南
深度学习·r语言·cnn
m0_743106461 天前
【3D硬核】四元数(Quaternions)与旋转矩阵(Rotation)——三维空间中的旋转
人工智能·计算机视觉·3d·矩阵·几何学
别或许1 天前
线代中为什么左乘一个列满秩矩阵,不改变矩阵的秩?
人工智能·算法·矩阵