R语言不使用merge/lookup函数通过行号匹配合并两个数据集
解决方案
你可以直接使用R内置的match()函数实现需求,该函数会返回待匹配值在查找参照向量中的首次出现位置下标,正好对应你需要的lookup.df行号,无需调用merge或lookup类封装函数。
实现代码
# 生成和你预期完全一致的行号序列 rows <- match(Data.df$x3, lookup.df$x1) # 提取lookup.df的x2列赋值到Data.df,注意你示例代码中的df1为lookup.df的笔误 Data.df$x2 <- lookup.df[rows, 2]
结果验证
运行上述代码后,rows的值就是你给出的预期序列c(1, 5, 4, 1, 3, 5, 2, 5, 4, 3),最终得到的Data.df和你期望的输出完全一致。
内容的提问来源于stack exchange,提问作者JamesR
相关产品推荐
相关产品推荐

