r - 如果一个数据框中的多个值重复多次,如何将它们替换为另一个数据框中的多个值

标签 r dataframe for-loop replace merge

我有一个 A 矩阵的数据框,如下所示:

  V1 V2 V3
1  1  1  1
2  2  1  0
3  2  2  1
4  3  1  0
5  3  2  0
6  3  3  1

我还有一个交叉引用数据框,其中包含原始 ID 和新 ID,如下所示:

  ID newID
1 SE1     1
2  T3     2
3  R5     3
4  R7     4
5  R9     5
6 A11     6

如何获取这样的数据框(在创建新列 ID1ID2 之后)?

  V1 V2 V3 ID1 ID2
1  1  1  1 SE1 SE1
2  2  1  0 T3  SE1
3  2  2  1 T3  T3
4  3  1  0 R5  SE1
5  3  2  0 R5  T3
6  3  3  1 R5  R5

最佳答案

我们可以使用 inner_join 两次:

library(dplyr)

df %>% 
    inner_join(df1, by=c("V1"="newID")) %>% 
    inner_join(df1, by=c("V2"="newID")) %>% 
    rename(ID1 = ID.x, ID2 = ID.y)

  V1 V2 V3 ID1 ID2
1  1  1  1 SE1 SE1
2  2  1  0  T3 SE1
3  2  2  1  T3  T3
4  3  1  0  R5 SE1
5  3  2  0  R5  T3
6  3  3  1  R5  R5

关于r - 如果一个数据框中的多个值重复多次,如何将它们替换为另一个数据框中的多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68897787/

相关文章:

javascript - 在不更改标记大小的情况下,使用 plotly proxy 在 plotly 中更改跟踪标记的颜色

r - 我如何 'efficiently' 在大型文本语料库中用另一个(成对)替换字符串向量

r - 我怎样才能制作我的 R session Vanilla ?

r - 使用 R 识别文本段落中的差异

python - 从基于文件的列和行中的最大值中删除重复项 -pandas

c# - 多线程不处理所有任务

python - 使用 pandas-drop() 删除列 - 函数不起作用

Python数据帧: Standard deviation of last one year of data

javascript - 优化谷歌应用程序脚本中的循环

java - 迭代 HashMap 的数字和字母