r - 如果重复多次,如何从另一个数据框中替换数据框中的多个值
问题描述
我有一个 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
我如何使用来获取这样的数据框(在创建新列ID1
和之后ID2
)?
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
推荐阅读
- docker - nginx 响应 HTTPS 但不响应 HTTP
- amazon-web-services - 使用适用于 Java 的 AWS 开发工具包生成预签名 URL
- javascript - 尝试解析仅允许数字的脚本在 Internet Explorer 11 中不起作用
- javascript - 将 for 循环转换为 forEach 循环时重新分配变量值的问题
- javascript - 你能阻止 3D 触摸但不能点击并按住保存吗?
- amazon-web-services - 当我从邮递员发送消息时如何接收参数
- android - 用于管理 Play 控制台上的测试人员的 GSuite 组
- c++ - 矢量 emplace_back 要求和 unique_ptr 成员
- elasticsearch - 如何将 InfluxDB 与 Elasticsresearch 同步?
- python - 用于 modify_instance_attribute 的 Python Boto3 参数无效