rr-environment

Remove unwanted letter in data column names in R environment


I have a dataset the contains a large number of columns every column has a name of date in the form of x2019.10.10

what I want is to remove the x letter and change the type of the date to be 2019-10-10

How this could be done in the R environment?


Solution

  • One solution would be:

    1. Get rid of x
    2. Replace . with -.

    Here I create a dataframe that has similar columns to yours:

    df = data.frame(x2019.10.10 = c(1, 2, 3),
                    x2020.10.10 = c(4, 5, 6))
    df
    
      x2019.10.10 x2020.10.10
    1           1           4
    2           2           5
    3           3           6
    

    And then, using dplyr (looks much tidier):

    library(dplyr)
    names(df) = names(df) %>% 
            gsub("x", "", .) %>% # Get rid of x and then (%>%):
            gsub("\\.", "-", .) # replace "." with "-"
    df
    
      2019-10-10 2020-10-10
    1          1          4
    2          2          5
    3          3          6
    

    If you do not want to use dplyr, here is how you would do the same thing in base R:

    names(df) = gsub("x", "", names(df))
    names(df) = gsub("\\.", "-", names(df))
    df
    
      2019-10-10 2020-10-10
    1          1          4
    2          2          5
    3          3          6