R - 按具有重复条目的变量列合并

标签 r sorting merge duplicates

我正在尝试按 ID 合并两个不同大小的数据。但是,对于匹配的值,两个数据都包含重复条目,即数据A中可能有三个ID#3,数据B中可能有三个ID#3。当我尝试合并数据时,结果比两者都大数据结合。

C<-merge(A,B,by="ID",all.x=T,sort=F)



我想通过 ID 列合并两个数据,以便 B 中的第一个 ID #3 与 A 中的第一个 ID #3 配对,依此类推。

另外,我希望数据 A 的行顺序保持不变。 sort=FALSE 没有太大帮助:它将所有匹配的行放在顶部,将不匹配的行放在底部。

谢谢你的帮助!

最佳答案

在合并之前,您需要向每个 data.frame 添加一个列,该列的值记录其自己的 ID 组中每个观察的索引。

## Example data
A <- data.frame(ID=c(1,1,1,2), ht=1:4)
B <- data.frame(ID=c(1,1,2,2), wt=3:6)

## Add column with number of each observation within ID
A <- transform(A, ID2=ave(ID, ID, FUN=seq_along))
B <- transform(B, ID2=ave(ID, ID, FUN=seq_along))

## Now carry out the merge
merge(A, B, all.x=TRUE, sort=FALSE)
#   ID ID2 ht wt
# 1  1   1  1  3
# 2  1   2  2  4
# 3  2   1  4  5
# 4  1   3  3 NA

关于R - 按具有重复条目的变量列合并,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14657104/

相关文章:

css - 具有长名称的 Shiny selectInput/pickerInput 应该溢出侧边栏

javascript - 如何在 ReactJS 中对 JSON 数据进行排序

javascript - JavaScript 中的对象数组排序

python - 如何合并两个表并从 Python 中每个单元格中的先前值计数中划分数字实例?

删除每个 .txt 文件的最后一行并在 R 中导入/合并数据

r - 为什么 `ns(0.8)` 或 `ns(c(0.8))` 返回 `NA/NaN/Inf in foreign function call (arg 1)` ?

Rstudio 服务器从特定目录运行

r - 在 R 中使用 shapefile 剪切栅格,但保留 shapefile 的几何形状

python - 如何使用相同的方法按不同的属性快速排序对象列表?

ruby - 如何在 Ruby 中合并数组中的子数组?