Obvious is in the eye of the beholder. Presuming your letters don't go beyond "i":
a) Lookup table: tbl <- read.table( text= "OldCode NewCode 1 1 1a 1.1 1b 1.2 1c 1.3 2 2 2a 2.1 2b 2.2 ", as.is=TRUE, header=TRUE ) tblv <- setNames( tbl$NewCode, tbl$OldCode ) test <- c( "2", "1c", "2b" ) as.vector( tblv[ test ] ) b) String manipulation: n <- as.integer( sub( "[a-i]$", "", test ) ) d <- match( sub( "^\\d+", "", test ), letters[1:9] ) d[ is.na( d ) ] <- 0 n + d / 10 On July 10, 2020 10:50:18 AM PDT, Jean-Louis Abitbol <abit...@sent.com> wrote: >Dear All > >I have a character vector, representing histology stages, such as for >example: >xc <- c("1", "1a", "1b", "1c", "2", "2a", "2b", "2c") > >and this goes on to 3, 3a etc in various order for each patient. I do >have of course a pre-established classification available which does >change according to the histology criteria under assessment. > >I would want to convert xc, for plotting reasons, to a numeric vector >such as > >xn <- c(1, 1.3, 1.5, 1.7, 2, 2.3, 2.5, 2.7) > >Unfortunately I have no clue on how to do that. > >Thanks for any help and apologies if I am missing the obvious way to do >it. > >JL -- Sent from my phone. Please excuse my brevity. ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.