r - 如何根据不同数据帧的两个 ID 列的匹配从数据帧列中提取值?

标签 r match extract

我在处理这件事时遇到了一些麻烦。基本上,我想根据 2 个不同数据帧的 id 匹配的第一次出现从 MakeText 列中提取值。一个数据帧仅具有唯一的 ID,而另一个数据帧具有同一 ID 的多行,因此是第一次出现的子句。每个唯一 ID 都有唯一的 MakeText 列值。

我尝试在 r 中进行匹配和合并,但由于数据帧的行数不同,我不知道如何提取列值。

基于此 ID:

 wb <- spread(data = newdata, 
             key = an,
             value = av)

 names(wb)[1] <- "ID"

 wb <- as.data.frame(wb)
 View(wb)

  Id     BodyColorText
  1.0    blue
  100.0  cyan
  1001.0 red
  1003.0 black

我想将其与此 ID 相匹配:

View(supplierdata)

  Id     MakeText
  1.0    Mercedes
  1.0    Mercedes
  1001.0 Ferrari
  1001.0 Ferrari
  1003.0 Audi

并提取 MakeText 列值,将其连接到与该 ID 相关的 wb 数据框。

由于行数不相等 - wb 有 1103,而 sellerdata 有 20957 - 我发现很难做到这一点。

我正在寻找的最终输出是“wb”数据框,如下所示:

  Id     BodyColorText MakeText
  1.0    blue          Mercedes
  100.0  cyan          Porsch
  1001.0 red           Ferrari
  1003.0 black         Audi

我们将非常感谢您的帮助。

最佳答案

我相信您正在寻找left_join

library(dplyr)

left_join(wb, suplierdata)

关于r - 如何根据不同数据帧的两个 ID 列的匹配从数据帧列中提取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56237857/

相关文章:

r - 在R Studio中从mclapply打印

R确定图像宽度和高度(以像素为单位)

r - 基于另一列提取值

Python 正则表达式 : Proper way to extract separated numbers (AxBxC -> [A, B, C])

r - 如何从waldo::compare()返回的对象中提取未完成的值?

properties - Neo4j 匹配节点属性或关系属性

javascript - 如果一组不匹配,.match() 返回 null

mysql - 返回匹配值,排除不匹配的值,去除重复值 MYSQL

r - 如果每个 id 的第一行是 1,则使用 R 提取数据

r - 基于 R 中条件的子集列表