相关疑难解决方法(0)

40
推荐指数
4
解决办法
2万
查看次数

使用 stringi 在 R 中生成唯一的随机字符串

我有数据,其中每一行都是一个人。我想制作一个随机生成的唯一ID,这样我就可以在分析中识别它们。

这是一个示例数据框

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)
)
Run Code Online (Sandbox Code Playgroud)

为了生成唯一的 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]'))))
Run Code Online (Sandbox Code Playgroud)

但是,当我测试新变量 UniqueID 是否唯一时,通过运行此代码,我发现存在一些重复项。

length(unique(unlist(df[c("UniqueID")])))
Run Code Online (Sandbox Code Playgroud)

有没有办法生成一个真正唯一、没有重复的唯一ID?

我看过这些问题,但它没有回答如何使生成的随机数唯一。 在R中的数据帧列中生成唯一的随机数 创建一个数据帧,每列中包含随机数

谢谢

string random r stringi

3
推荐指数
1
解决办法
5021
查看次数

标签 统计

acronym ×1

glossary ×1

r ×1

random ×1

string ×1

stringi ×1

uuid ×1