如何在 R 中使用 mutate 函数添加包含另一个索引列表中的值的列?

问题描述 投票:0回答:1

我在 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])

r dplyr mutate
1个回答
0
投票

你做

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
© www.soinside.com 2019 - 2024. All rights reserved.