Générer une séquence (aléatoire) de plusieurs caractères dans R


rmuc8
  1. Je peux créer une séquence de lettres uniques en utilisant

    LETTERS[seq( from = 1, to = 10 )]
    letters[seq( from = 1, to = 10 )]
    
  2. Je peux créer une chaîne aléatoire de différentes longueurs, en utilisant le randompackage

    library(random)
    string <- randomStrings(n=10, len=5, digits=TRUE, upperalpha=TRUE,
                      loweralpha=TRUE, unique=TRUE, check=TRUE)
    

Malheureusement, je ne peux pas utiliser la set.seedfonction par exemple 2.

Existe-t-il un moyen de créer la même combinaison (aléatoire) de chaînes (uniques) chaque fois que l'on exécute un fichier R?

Mon résultat ressemblerait à ceci (avec le même résultat à chaque fois que j'exécute la fonction):

       V1     
  [1,] "k7QET"
  [2,] "CLlWm"
  [3,] "yPuwh"
  [4,] "JJqEX"
  [5,] "38soF"
  [6,] "xkozk"
  [7,] "uaiOW"
  [8,] "tZcrW"
  [9,] "8K4Cc"
 [10,] "RAhuU"
Rich Scriven

Dans un fichier, dites test.R, ajoutez ce qui suit

set.seed(1)
stringi::stri_rand_strings(10, 5)

Ensuite, il est reproductible à chaque fois.

replicate(5, source("test.R", verbose = FALSE)$value)
#       [,1]    [,2]    [,3]    [,4]    [,5]    
#  [1,] "GNZuC" "GNZuC" "GNZuC" "GNZuC" "GNZuC" 
#  [2,] "twed3" "twed3" "twed3" "twed3" "twed3"
#  [3,] "CAgNl" "CAgNl" "CAgNl" "CAgNl" "CAgNl"
#  [4,] "UizNm" "UizNm" "UizNm" "UizNm" "UizNm" 
#  [5,] "vDe7G" "vDe7G" "vDe7G" "vDe7G" "vDe7G"
#  [6,] "N0NrL" "N0NrL" "N0NrL" "N0NrL" "N0NrL"
#  [7,] "TbUBp" "TbUBp" "TbUBp" "TbUBp" "TbUBp"
#  [8,] "fn6iP" "fn6iP" "fn6iP" "fn6iP" "fn6iP" 
#  [9,] "oemYW" "oemYW" "oemYW" "oemYW" "oemYW"
# [10,] "m1Tjg" "m1Tjg" "m1Tjg" "m1Tjg" "m1Tjg"

Au lieu de cela source(), vous pouvez l'utiliser parse().

replicate(5, eval(parse("test.R")))

Articles connexes