如何将一个值从 R 中的转换 table 转换为对应的值?

How do I convert one value into a corresponding one from a conversion table in R?

如果我的问题的措辞没有多大意义,我深表歉意,但希望我的解释能有所帮助。

假设我有一个数据框,ex,它看起来像这样:

  geneID sample1 sample2
1      1      18       2
2     10       6      17
3    100       9      12

和相应的 table、convtab,看起来像这样:

  geneID genesymbol
1      1       A1BG
2     10       NAT2
3    100        ADA

这里的目标是,对于 ex 中的每个 geneID,如果它与 convtab$geneID 中的值匹配,则将其替换为同一行中 convtab$genesymbol 中的相应值。

例如,ex 的 [1,1] 中的值 1 将替换为 A1BG。

虽然我可以用这个示例集手动完成,但我的实际数据集要大得多,所以我没有机会手动更改值。

非常感谢您的帮助!

如评论中所述,这可以通过以下方式完成:

 ex$geneID <- convtab$genesymbol[match(ex$geneID, convtab$geneID)]

使用dplyr你可以left_join data.frames:

library(dplyr)

ex %>%
  left_join(rep, by=("geneID")) %>%
  select(-geneID, geneID=genesymbol)

returns

# A tibble: 3 x 3
  sample1 sample2 geneID
    <dbl>   <dbl> <chr> 
1      18       2 A1BG  
2       6      17 NAT2  
3       9      12 ADA