在R中生成唯一子字符串表

在R中生成唯一子字符串表,r,unique,substr,R,Unique,Substr,因此,我有一个非常大的数据集,我想知道一个列的唯一值,该列有大约400000个观察值,每个观察值如下所示: 标识符:abzcd:def:RANDOMNUMBERSTRING和标识符:de:ghijklm:RANDOMNUMBERSTRING。 我只希望随机数字符串之前的部分具有唯一匹配项。换句话说,我只想过滤掉代码的重复项:identifier:LETTERS:LETTERS unique函数不起作用,看起来我需要确切地知道要过滤哪些子字符串,或者子字符串要使用substr函数多长时间。关于我如

因此,我有一个非常大的数据集,我想知道一个列的唯一值,该列有大约400000个观察值,每个观察值如下所示:
标识符:abzcd:def:RANDOMNUMBERSTRING
标识符:de:ghijklm:RANDOMNUMBERSTRING
。 我只希望随机数字符串之前的部分具有唯一匹配项。换句话说,我只想过滤掉代码的重复项:
identifier:LETTERS:LETTERS
unique
函数不起作用,看起来我需要确切地知道要过滤哪些子字符串,或者子字符串要使用
substr
函数多长时间。关于我如何做到这一点有什么建议吗

以下是一些可用作模型的数据:

randz <- data.frame(id =
                      sprintf("identifier:%s%s%s:%s%s%s:%s",
                 sample(letters, 1000,replace = T ),
                 sample(letters, 1000,replace = T ),
                 sample(letters, 1000,replace = T ),
                 sample(letters, 1000,replace = T ),
                 sample(letters, 1000,replace = T ),
                 sample(letters, 1000,replace = T ),
                 sample(6000:7000, 1000, replace = T )))
randz

randz这里有一个使用
tidyverse

# Fake Data
randz <- data.frame(id =
                      sprintf("identifier:%s%s%s:%s%s%s:%s",
                 sample(letters, 1000,replace = T ),
                 sample(letters, 1000,replace = T ),
                 sample(letters, 1000,replace = T ),
                 sample(letters, 1000,replace = T ),
                 sample(letters, 1000,replace = T ),
                 sample(letters, 1000,replace = T ),
                 sample(6000:7000, 1000, replace = T )))
输出:

A tibble: 1,000 x 2
   out                    n
   <chr>              <int>
 1 identifier:aar:muk     1
 2 identifier:abe:tlo     1
 3 identifier:abg:qux     1
 4 identifier:abh:bxx     1
 5 identifier:abl:vdj     1
A tible:1000 x 2
外
1标识符:aar:muk 1
2标识符:abe:tlo 1
3标识符:abg:qux 1
4标识符:abh:bxx 1
5标识符:abl:vdj 1

您可以使用正则表达式提取它们。下面是一个使用
stringr
包的示例

str\u extract(“标识符:de:ghijklm:RANDOMNUMBERSTRING”,“标识符\\:[a-z]+\\:[a-z]+)”)
A tibble: 1,000 x 2
   out                    n
   <chr>              <int>
 1 identifier:aar:muk     1
 2 identifier:abe:tlo     1
 3 identifier:abg:qux     1
 4 identifier:abh:bxx     1
 5 identifier:abl:vdj     1