数据框 X 包含来自特定人群的信息,例如:
EF ORG_PRES TYPE_CONT
R01 FEDERAL BASE
AX1 OUTCOME CLUE
R02 FEDERAL OPT1
我有三个列表,我们的矢量对我有用,就像这样的目录数据帧:
list1的
Id_EF EF
35 R01
36 AX1
37 R02
list2中
Id_TYPE_CONT TYPE_CONT
101 OPT1
201 BASE
301 CLUE
项目list3
Id_ORG_PRES ORG_PRES
0034 FEDERAL
0035 OUTCOME
我需要的是从数据框 X 中提取值,并从列表中替换它们各自的索引值。我期望的输出是一个看起来像这样的数据框:
EF ORG_PRES TYPE_CONT
35 0034 201
36 0035 301
37 0034 101
它不必是相同的 X 数据框。
我不想创建循环函数,但数据框 X 很大,变量是具有大量leves的因子。
答案 0 :(得分:0)
OP - 将来,请让我们轻松复制粘贴您的样本数据,如上面的评论中所述。
解决您问题的一种方法是使用Reduce
和merge
的组合:
out <- Reduce(function(x, y) {
merge(x, y, all.x = TRUE)
}, list(list1, X, list2, list3))[, paste0("Id_", names(X))]
out
# Id_EF Id_ORG_PRES Id_TYPE_CONT
# 1 35 0034 201
# 2 37 0034 101
# 3 36 0035 301