R比较两个矩阵,如果相等则替换为另一列



我有两个矩阵。(这是一个例子;实际上矩阵有几个项目)

matrix1:

Samples    Name
ab_745     jhjf
cd333     kdwo
fn_487     asjd
aa482     ijaf

matrix2:

Nr    Samples     Expr.nr
1     cd858     4838.0
2     aa482     2384.9
3    fn_487     3834.8

我想比较两列,如果有匹配,matrix1中的名称将替换为samples中的名称。

示例:将fn_487替换为asjd。

我已经谢谢你的回答了。

这些是数据帧,不是吗?

library(tidyverse)
matrix1 <- read_table("Samples    Name
ab_745     jhjf
cd333     kdwo
fn_487     asjd
aa482     ijaf")
matrix2 <- read_table(" Nr    Samples     Expr.nr
1     cd858     4838.0
2     aa482     2384.9
3    fn_487     3834.8")
matrix1 %>% 
mutate(Samples = case_when(Samples %in% matrix2$Samples ~ Name, 
TRUE ~ Samples))
#> # A tibble: 4 × 2
#>   Samples Name 
#>   <chr>   <chr>
#> 1 ab_745  jhjf 
#> 2 cd333   kdwo 
#> 3 asjd    asjd 
#> 4 ijaf    ijaf

由reprex包(v2.0.1)创建于2022-06-26

最新更新