我有一些数据,每行代表一个人。我想生成一个随机的唯一ID,以便在分析中识别他们。
以下是一个示例数据框:
生成一个唯一的ID,我正在使用stringi。
然而,当我测试新变量UniqueID是否唯一时,运行这段代码后,我发现有些重复。
有没有一种方法可以生成真正唯一的ID,没有重复的?
我看到了这些问题,但它并没有回答如何使生成的随机数唯一。 在R中生成数据框列中的唯一随机数 创建每个列中具有随机数的数据框 谢谢。
以下是一个示例数据框:
df <- data.frame(
gender = rep(c("M", "F", "M", "M", "F"), 1000),
qtr = sample(c(1:99), 50000, replace = T),
result = sample(c(100:1000), 50000, replace = T)
)
生成一个唯一的ID,我正在使用stringi。
library(stringi)
library(magrittr)
library(tidyr)
df <- df %>%
mutate(UniqueID = do.call(paste0, Map(stri_rand_strings, n=50000, length=c(2, 6),
pattern = c('[A-Z]', '[0-9]'))))
然而,当我测试新变量UniqueID是否唯一时,运行这段代码后,我发现有些重复。
length(unique(unlist(df[c("UniqueID")])))
有没有一种方法可以生成真正唯一的ID,没有重复的?
我看到了这些问题,但它并没有回答如何使生成的随机数唯一。 在R中生成数据框列中的唯一随机数 创建每个列中具有随机数的数据框 谢谢。
name <- ids::random_id(n, 4)
并两次得到了值519299b2
。 - Patrick Coulombe