数据格式转换 | 稀疏矩阵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

相关推荐
ASD123asfadxv9 小时前
汽车保险丝盒元件识别与分类:基于Faster R-CNN与ResNet101的检测方案详解
分类·r语言·汽车
天桥下的卖艺者9 小时前
使用R语言编写一个生成金字塔图形的函数
开发语言·数据库·r语言
重生之我是Java开发战士9 小时前
【优选算法】前缀和:一二维前缀和,寻找数组的中心下标,除自身以外数组的乘积,和为K的子数组,和可被K整除的子数组,连续数组,矩阵区域和
线性代数·算法·矩阵
We་ct11 小时前
LeetCode 73. 矩阵置零:原地算法实现与优化解析
前端·算法·leetcode·矩阵·typescript
好学且牛逼的马11 小时前
【Hot100|22-LeetCode 206. 反转链表 - 完整解法详解】
算法·leetcode·矩阵
ValhallaCoder11 小时前
hot100-矩阵
数据结构·python·算法·矩阵
-dzk-20 小时前
【代码随想录】LC 59.螺旋矩阵 II
c++·线性代数·算法·矩阵·模拟
We་ct1 天前
LeetCode 54. 螺旋矩阵:两种解法吃透顺时针遍历逻辑
前端·算法·leetcode·矩阵·typescript
weisian1511 天前
进阶篇-7-数学篇-6--向量、矩阵、张量在 AI 中的运算与应用:解锁智能的“计算语法”
人工智能·线性代数·矩阵·向量·ai运算
独自破碎E1 天前
【前缀和】LCR_013_二维区域和检索-矩阵不可变
线性代数·矩阵