R语言 如何查找和匹配两个矩阵(不同大小的行)中的所有公共项,并将公共项替换为第二个矩阵中的匹配行

js81xvg6  于 2022-12-06  发布在  其他
关注(0)|答案(1)|浏览(190)

我有两个矩阵,我想用矩阵2中与“target_id”在同一行的“external_gene_name”替换矩阵1中的“target_id”列。
例如
矩阵1:

KO_1D_7dpi  KO_2D_7dpi  KO_3D_7dpi    KO_4D_7dpi WT_1D_7dpi
ENSMUST00000221393.2 -13.8155106   0.5522234   0.2745596   0.260108646 -13.815511
ENSMUST00000059802.7 -13.8155106 -13.8155106 -13.8155106 -13.815510558   5.466629
ENSMUST00000185334.7   0.6350789   0.1733741   0.1357635   0.437655396 -13.815511

矩阵2:

external_gene_name
ENSMUST00000221393.2                 gene1
ENSMUST00000059802.7                 gene2
ENSMUST00000185334.7                 gene3

所需矩阵:

KO_1D_7dpi  KO_2D_7dpi  KO_3D_7dpi    KO_4D_7dpi WT_1D_7dpi
gene1 -13.8155106   0.5522234   0.2745596   0.260108646 -13.815511
gene2 -13.8155106 -13.8155106 -13.8155106 -13.815510558   5.466629
gene3 0.6350789   0.1733741   0.1357635   0.437655396 -13.815511

我尝试使用left_joinlapply函数,但它们不起作用。如果您有任何帮助,我将不胜感激!谢谢。

c6ubokkw

c6ubokkw1#

idx <- match(rownames(matrix_1), rownames(matrix_2))

rownames(matrix_1)[idx] <- matrix_2[idx,"external_gene_name"]

      KO_1D_7dpi  KO_2D_7dpi  KO_3D_7dpi  KO_4D_7dpi WT_1D_7dpi
gene1 -13.8155106   0.5522234   0.2745596   0.2601086 -13.815511
gene2 -13.8155106 -13.8155106 -13.8155106 -13.8155106   5.466629
gene3   0.6350789   0.1733741   0.1357635   0.4376554 -13.815511

相关问题