Search code examples
rprefix

Exclude prefix to all lines in a column (R software)


I would like to exclude a common prefix to all lines from a specific collumn in R dataframe. My input:

   chr

   chr1
   chr2
   chr3
   chr4

And my expected output:

  chr
   1
   2
   3
   4

Solution

  • If those are factors then you need to change the 'level' names rather than working on the item values:

    chrdf <- read.table(text="chr1
        chr2
        chr3
        chr4", col.names="chr")
    chrdf
    #--------
       chr
    1 chr1
    2 chr2
    3 chr3
    4 chr4
    
    levels(chrdf$chr) <- gsub("chr", "", levels(chrdf$chr) )
    chrdf
      chr
    1   1
    2   2
    3   3
    4   4
    

    The 'factor' variable-type is a source of difficulty for many people. I can testify that the difficulty persists for quite a while. I don't ask a lot of questions, but one that I did ask got a lot of upvotes from the rest of the similarly confused (or perhaps the smarter ones were only bemused and sympathetic) SO readership.