【发布时间】:2017-11-08 12:33:11
【问题描述】:
我已经挣扎了一段时间了,我找不到出路。这是我的问题。
我有 2 个数据框:
df1 <- data.frame(replicate(3,sample(1:10,20,rep=TRUE)))
df1
X1 X2 X3
1 10 1 9
2 3 4 2
3 7 6 8
4 8 10 7
5 5 7 5
6 8 5 9
7 9 8 4
8 6 2 7
9 2 9 6
10 5 2 9
df2 <- data.frame(df1[sample(nrow(df1),4), ])
df2
X1 X2 X3
8 6 2 7
3 7 6 8
10 5 2 9
7 9 8 4
我想创建一个 length(x) = length(df1) 的向量 x,每行包含 df1, df2 中对应行的行索引(即,df1 和 df2 之间的每一列的精确值相同)。
考虑一下:
dim(df1)
[1] 1096188 3
dim(df2)
[1] 256 3
并且 df1 有几行具有相同的值(即相应的行索引将相同),并且原则上 df1 中的所有行都应该找到与 df2 中的行匹配。
预期的输出是:
x
[1] 0 0 2 0 0 0 4 1 0 3
希望这已经足够清楚了......
你能帮忙吗?
谢谢,
皮耶拉
【问题讨论】:
-
不。我需要一个与 df1 长度相同的新向量,其中包含 df2 的行索引,其条目与 df1 完全相同。因此,最后,对于 df1 的每一行,我将拥有 df2 中相应行的行索引。当然,df1 会有几行具有相同的值,因此关联的行索引将是相同的。
-
是的,抱歉,我认为该示例可能会有所改进。我的 df1 有几行具有相同的值。我应该澄清一下。
-
您能从给出的示例中发布您的预期输出吗?我假设它是
[1] 8 3 10 7 -
完成! :) 根据需要编辑。
-
@CathG 完成。现在清楚了吗?
标签: r