我在 R 中有一个数据框(df):
df
我关心的一些_价值 | 基因_ID |
---|---|
12345 | 1 |
4567 | 2 |
6789 | 2 |
此外,我有一个列表(我假设已索引):
s4_file$基因
[1]基因A [2]基因B
我想在 df 中添加一列,它使用此索引列表来绘制“基因”名称并添加它:
df_final
我关心的一些_价值 | 基因_ID | 基因_名称 |
---|---|---|
12345 | 1 | 基因A |
4567 | 2 | 基因B |
6789 | 2 | 基因B |
我使用了这个,但不确定它是否按预期进行:
df_final <- df %>% 变异(Gene_Name = s4_file$gene[Gene_ID])
你做
s4_file$gene[Gene_ID]
的直觉是非常正确和稳健的。这意味着您知道两个数据集中的数据没有对齐。
您可以对 df 的每一行进行
apply()
操作,并使用关联的“Gene_ID”在“s4_file$genes”中找到相应的“基因”。
df%<>%apply(1, function(x) {c(x, Gene_Name=s4_file$genes[x['Gene_ID']])}) %>%t() %>%as.data.frame()
df
Some_value_I_care_about Gene_ID Gene_Name
1 12345 1 Gene A
2 4567 2 Gene B
3 6789 3 Gene C