如何将一个值从 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
如果我的问题的措辞没有多大意义,我深表歉意,但希望我的解释能有所帮助。
假设我有一个数据框,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