Ich habe eine Liste mit Strings:
thzJqGVnDxGzyUPZ8r5z
4JfDZijTxDMKBANKPvw1
t7X5C4Nubv8oGIcPEhIc
ZKwBEZBC5IDfm6atAzTG
gIZRkF6XvlOEI8GI2T8l
Ich möchte aus jeder Zeichenfolge zehn zufällige Zeichen extrahieren.
Die Ausgabe sollte beispielsweise so aussehen (beachten Sie, dass die Reihenfolge irrelevant ist - nur solange es sich um ein Beispiel handelt):
tzJqVDGyZz
fDjTDKAKw1
t7X58oGIhI
ZKwBEatzTG
gIZ8GI2T8l
Gibt es einen einfachen Weg, dies zu erreichen?
Hinweis: Es sollte keinen Ersatz geben (dh ein einmal ausgewählter Charakter kann nicht ersetzt und erneut ausgewählt werden).
Im Falle einer Zeichenfolge, die mehr als eine Instanz eines beliebigen Zeichens enthält, sollte jedes Zeichen als unabhängig / individuell behandelt werden.
Beispiel: Die Zeichenfolge AABBCCDDEE1122334455
kann ein gültiges Ergebnis von haben AABB44DD2E
.
Das Ergebnis kann niemals sein, AAABB44DD2
da dies ein zusätzliches Element enthalten würde, A
das in der ursprünglichen Zeichenfolge nicht vorhanden war.
Sie können utf8ToInt
+ . verwendensample
sapply(s,
function(v) intToUtf8(utf8ToInt(v)[sort(sample(nchar(v), 10))]),
USE.NAMES = FALSE
)
was ergibt ergebnis wie
[1] "hJnDxGzUPr" "ZjTxAKPvw1" "7C4vIcEhIc" "ZKBEZBImtz" "gIRkvlE2T8"
Wenn Sie die gleiche relative Reihenfolge zwischen den Zeichen nicht beibehalten möchten, können Sie sort
den obigen Code weglassen
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen