J'ai un vecteur de caractères compliqué, dont chaque élément est constitué de chiffres et de lettres. Je veux simplifier ce vecteur, de sorte que les séquences de chiffres et/ou de lettres soient placées dans des plages. Voici un exemple de ce à quoi devraient ressembler les vecteurs d'entrée et de sortie :
# Input vector
input_vec <- c("1,2,3,4,5", "1,2,3,5,6,7,8", "2,3,4,5", "A,B,C", "1,2,3,4,5,A,B,8,9,10,11")
# Here some function should be applied, to create the desired output vector automatically
# Desired output vector
output_vec <- c("1-5", "1-3,5-8", "2-5", "A-C", "1-5,A-B,8-11")
Je suis sûr qu'il doit y avoir un moyen de construire une fonction ou d'utiliser un paquet, pour faire cela d'une manière automatisée, mais malheureusement j'ai du mal à trouver une solution. Toute aide est la bienvenue !
UPDATE : Ajout d'un vecteur encore plus compliqué
input_vec2 <- c("1,2,3,4,5", "1,2,3,5,6,7,8", "2,3,4,5", "A,B,C", "1,2,3,4,5,A,B,8,9,10,11",
"1", "1,2,3,-4", "lala,3") # This part is new
output_vec2 <- c("1-5", "1-3,5-8", "2-5", "A-C", "1-5,A-B,8-11",
"1", "1-3,-4", "lala,3") # This part is new