也许这个“匹配”的补充示例会有所帮助。
有两个数据集:
first_dataset <- data.frame(name = c("John", "Luke", "Simon", "Gregory", "Mary"),
role = c("Audit", "HR", "Accountant", "Mechanic", "Engineer"))
second_dataset <- data.frame(name = c("Mary", "Gregory", "Luke", "Simon"))
如果名称列仅包含唯一跨集合值(跨整个集合)
然后您可以通过 match 返回的索引值访问其他数据集中的行
name_mapping <- match(second_dataset$name, first_dataset$name)
match 从第二个给定名称返回 first_dataset 中名称的正确行索引:5 4 2 1
此处的示例 - 按行索引(按给定名称值)从第一个数据集中访问角色
for(i in 1:length(name_mapping)) {
role <- as.character(first_dataset$role[name_mapping[i]])
second_dataset$role[i] = role
}
===
second dataset with new column:
name role
1 Mary Engineer
2 Gregory Mechanic
3 Luke Supervisor
4 Simon Accountant
r