我在处理这件事时遇到了一些麻烦。基本上,我想根据 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/