我有两个数据框,A 和 B。
a1 <- c(12, 12, 12, 23, 23, 23, 34, 34, 34)
a2 <- c(1, 2, 3 , 2, 4 , 5 , 2 , 3 , 4)
A <- as.data.frame(cbind(a1, a2))
b1 <- c(12, 23, 34)
b2 <- c(1, 2, 2)
B <- as.data.frame(cbind(b1, b2))
> A
a1 a2
1 12 1
2 12 2
3 12 3
4 23 2
5 23 4
6 23 5
7 34 2
8 34 3
9 34 4
> B
b1 b2
1 12 1
2 23 2
3 34 2
基本上,B 包含 A 中的行,每个唯一 a1 的 a2 的最低值。
我需要做的很简单。找到行索引(或行号?)让我们将其称为 index.vector,使得 A[index.vector, ] 等于 B。
对于这个特定问题,只有一个解决方案,因为对于 a1 的每个唯一值,a2 中没有相同的值。
例行程序越快越好。需要将其应用于具有 500 到数百万行之间的任何数据帧。