【发布时间】:2018-04-11 05:57:00
【问题描述】:
我有一个 ID 和地址的数据框。通常,我希望每个重复出现的 ID 在所有观察中都具有相同的地址,但我的一些 ID 具有不同的地址。我想找到那些在 ID 上重复但至少有 2 个不同地址的观察结果。然后,我想为其中一个随机化一个新 ID(之前在 DF 中不存在的 ID)。
例如:
ID Address
1 X
1 X
1 Y
2 Z
2 Z
3 A
3 B
4 C
4 D
4 E
5 F
5 F
5 F
将返回:
ID Address
1 X
1 X
6 Y
2 Z
2 Z
3 A
7 B
4 C
8 D
9 E
5 F
5 F
5 F
所以发生的事情是第 3、7、9 和 10 次观察得到了新的 ID。我会提到,一个 ID 可能有超过 2 个不同的地址,因此应该为每个唯一地址授予新 ID。
编辑:
我为更长的数据框示例添加了代码,其中 rand 列应该被忽略但保留在最终输出中。
df <- data.frame(ID = c(1,1,1,2,2,3,3,4,4,4,5,5,5),
Address = c("x","x","y","z","z","a","b","c","d","e",
"f","f","f"),
rand = sample(1:100, 13))
【问题讨论】:
-
你能提供你的代码吗?
-
用于创建示例数据框?
-
基于新的数据集,预期的输出是什么?
-
在问题中添加了更长的示例和更长的结果
标签: r duplicates unique