r - 根据一系列其他两列中的值查找值
问题描述
VAR_1
我想根据“ID_1”和“ID_2”的值在列中查找一个值。
set.seed(1234)
df <- data.frame(ID_1 = sample(1:10, 10),
ID_2 = sample(1:10, 10),
VAR_1 = sample(LETTERS[1:10], 10))
df
ID_1 ID_2 VAR_1
1 2 7 D
2 6 5 C
3 5 3 B
4 8 10 A
5 9 2 H
6 4 9 E
7 1 6 I
8 7 1 J
9 10 8 F
10 3 4 G
查看 中的数字ID_2
,找到匹配的数字并在新列中ID_1
记录该行VAR_1
RES
结果应该是什么样子:
ID_1 ID_2 VAR_1 RES
1 2 7 D J
2 6 5 C B
3 5 3 B G
4 8 10 A F
5 9 2 H D
6 4 9 E H
7 1 6 I C
8 7 1 J I
9 10 8 F A
10 3 4 G E
我已经尝试使用which
, afor-loop
和if_else
语句都无济于事,我相信它必须有一个简单的解决方案。非常感谢任何帮助。
解决方案
你需要?match
——
df$RES <- with(df, VAR_1[match(ID_2, ID_1)])
ID_1 ID_2 VAR_1 RES
1 2 7 D J
2 6 5 C B
3 5 3 B G
4 8 10 A F
5 9 2 H D
6 4 9 E H
7 1 6 I C
8 7 1 J I
9 10 8 F A
10 3 4 G E
推荐阅读
- php - MySQL 升级导致简单 WHERE 子句出现意外结果
- javascript - 替换Node JS中的文件路径
- python-3.x - 减少对'_thread.lock'对象的{方法'acquire'}python的调用次数
- firebase - 从 firebase 获取数据后视图中的 SwiftUI 图像未更新
- python - 如何在 lua 中创建 Python 生成器?
- reactjs - 进行菜单选择时如何关闭 react/material-ui 菜单/子菜单层次结构
- azure - 使用 Bicep 将 API 管理私有 IP 地址输入私有 DNS 条目时,不需要模板函数“引用”
- regex - 正则表达式匹配后的第一个单词和特定行中的最后一个单词
- spotipy - 对于 Spotipy API 中的 category_playlists 函数,使用 country 参数时会显示哪些类别?
- python - mqtt 代理中的数据解析