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?
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?
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"
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:
Überprüfen Sie das Paket 'Biostrings' und die Funktion' replaceAt'. Sie können 'sample' verwenden, um eine Zufallszahl zu erhalten. – JeremyS