2017-01-17 4 views
3

Angenommen, ich habe string_a <- c('1', '3', '4', '9' ,'8') und ich wählte zufällig zwei Elemente aus string_a mit der sample()-Funktion. Angenommen, ich habe als Ergebnis 3 und 8 bekommen.Konvertieren zufällig ausgewählter Elemente in binäre Darstellung

Meine Frage ist, wie kann ich ihre Indizes (Position) von 3 und 8 in string_a erhalten und sie in dieser Form darstellen: 01001, wobei 1 den Index der zufällig ausgewählten Zahl darstellt und 0 für nicht ausgewählten Indizes.

Weitere Beispiele:

wenn 1 und 3 zufällig ausgewählt werden, die binäre Darstellung 11000 wäre

wenn 9 und 8 zufällig ausgewählt werden, würde die binäre Darstellung 00011

sein und so weiter ...

Antwort

3

Wir können %in% verwenden, um eine logische Vecto zu erhalten r und dann mit as.integer in binäre coerce, fügen sie zusammen

paste(as.integer(string_a %in% sample(string_a, 2)), collapse="") 
#[1] "01010" 
2
# assume x to be 
x = c('3','9') 
paste0(as.numeric(match(string_a, x,nomatch = 0)>0), collapse = "") 
Verwandte Themen