Ich versuche, eine Funktion zu schreiben, um die Anzahl der aufeinander folgenden Instanzen eines Musters zu zählen. Als Beispiel möchte ich die Zeichenfolge wieZählen aufeinanderfolgende Muster in Strings mit R
string<-"A>A>A>B>C>C>C>A>A"
in
"3 A > 1 B > 3 C > 2 A"
umgewandelt zu werden habe ich eine Funktion habe, die die Instanzen jeder Saite zählt, siehe unten. Aber es erreicht nicht den Ordnungseffekt, den ich gerne hätte. Irgendwelche Ideen oder Hinweise?
Danke,
R
Vorhandene Funktion:
fnc_gen_PathName <- function(string) {
p <- strsplit(as.character(string), ";")
p1 <- lapply(p, table)
p2 <- lapply(p1, function(x) {
sapply(1:length(x), function(i) {
if(x[i] == 25){
paste0(x[i], "+ ", names(x)[i])
} else{
paste0(x[i], "x ", names(x)[i])
}
})
})
p3 <- lapply(p2, function(x) paste(x, collapse = "; "))
p3 <- do.call(rbind, p3)
return(p3)
}
Haben Sie sich die 'rle()' Funktion angesehen? Sollte gut funktionieren, wenn Sie Ihre Zeichenfolge in einen Vektor aufteilen. – MrFlick
Perfekt, vielen Dank. Noch nie von der Funktion gehört, aber sehr einfach zu bedienen. –