r - 如何匹配 ID 号以合并两个数据帧

标签 r pattern-matching

这个问题在这里已经有了答案:





How to join (merge) data frames (inner, outer, left, right)

(13 个回答)


2年前关闭。




我有两个数据框,它们的列的 ID 号应该匹配。但是,这两个数据帧的 ID 数量不同。一个有 118 个 ID,一个有 103 个 ID。具有 118 个 ID 的数据帧虽然包含所有 103 个 ID,但还有一些额外内容。我想从 118 行数据框中取出两列,并根据 ID 号将它们与在 103 行数据框中匹配的 ID 合并。我不知道解决这个问题的最简单方法。

最佳答案

您应该考虑使用 merge操作说明。假设您有 2 个数据框并且它们具有列 ID带有标识符:

merge(dataframe1, dataframe2, by = "ID")
如果它们有标识符但列的名称在每个数据框中不同(我使用 ID_dfX ),您应该使用:
 merge(dataframe1, dataframe2, by.x = "ID_df1", , by.y = "ID_df2")
有了这个,您将拥有一个数据帧,其中两个数据帧中的 ID 相同。其余信息被删除。这是一个 inner join .
如果要将一个数据框的信息添加到另一个可以使用,假设您不想触摸 dataframe1 并且只想添加共享 ID( left join )的 dataframe2 的信息:
merge(dataframe1, dataframe2, by.x = "ID_df1", , by.y = "ID_df2", all.x = TRUE)
在这里,您将找到有关连接(合并)的一些信息:

(INNER) JOIN: Returns records that have matching values in both dataframes.

LEFT (OUTER) JOIN: Return all records from the left table, and the matched records from the right table.

RIGHT (OUTER) JOIN: Return all records from the right table, and the matched records from the left table.

FULL (OUTER) JOIN: Return all records when there is a match in either left or right table.

关于r - 如何匹配 ID 号以合并两个数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54557833/

相关文章:

r - 如何计算数据框中以 R 中的序列开头的单元格百分比?

R read.xlsx colClasses 问题

r - 通过将矩阵转换为列表,组合、comboGeneral 和 Comn 的输出相同

Java 匹配器模式问题

pattern-matching - 使用来自定理的信息进行模式匹配

arrays - 合并多维数组

python - 在 Python 或 R 中为给定的度序列生成图

java - 基于Java模式分割字符串

java - 在 Java 中使用正则表达式贪婪搜索字符串模式

haskell - 通配符上的模式匹配