2016-06-12 7 views
-2

I eine Proteinsequenz haben (beispielsweise ein Vektor "I" "D" "I" "A" "S")Legen Sie eine zufällige Lücke in einen Vektor

Ich mag würde, eine Funktion implementieren, einen Zufallslücken * in dieser Sequenz einzufügen.

Wie kann ich das tun?

+0

Überprüfen Sie das Paket 'Biostrings' und die Funktion' replaceAt'. Sie können 'sample' verwenden, um eine Zufallszahl zu erhalten. – JeremyS

Antwort

0

Zum Beispiel

f <- function(x) { 
    id <- sample(seq(x), 1) 
    c(x[1:id], "*", x[-(1:id)]) 
} 
set.seed(123) 
f(c("I", "D", "I", "A", "S")) 
# [1] "I" "D" "*" "I" "A" "S" 
f(c("I", "D", "I", "A", "S")) 
# [1] "I" "D" "I" "A" "*" "S" 
0

Sie könnten versuchen:

func_insert_at <- function(vec, elements, at){ 
x <- rep(NA, length(vec)+length(elements)); 
x[at] <- elements;x[-at] <- vec;x;} 

vec <- c("I", "D", "I", "A", "S") 
set.seed(23) 
func_insert_at(vec, "*", ceiling(runif(1, 0, length(vec)))) 
# [1] "I" "D" "*" "I" "A" "S" 
func_insert_at(vec, "*", ceiling(runif(1, 0, length(vec)))) 
# [1] "I" "*" "D" "I" "A" "S" 

Der Vorteil dieser Funktion ist, dass elements Parameter der Funktion kann beliebig lang sein (nicht speziell 1). Zum Beispiel:

Verwandte Themen