Générer une séquence (aléatoire) de plusieurs caractères dans R
rmuc8
Je peux créer une séquence de lettres uniques en utilisant
LETTERS[seq( from = 1, to = 10 )] letters[seq( from = 1, to = 10 )]
Je peux créer une chaîne aléatoire de différentes longueurs, en utilisant le
random
packagelibrary(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.seed
fonction 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")))