natash
natash

Reputation: 127

Changing specific element in various variables

I've got variables in a dataset like this:


dat1 <- read.table(header=TRUE, text="
comp_T1_01 comp_T1_02 comp_T1_03 res_T1_01 res_T1_02 res_T1_03 res_T1_04 
1 1 2 1 5 5 5
2 1 3 3 4 4 1
3 1 3 1 3 2 2
4 2 5 5 3 2 2
5 1 4 1 2 1 3
")

I would like erase the "T1" of all the variables at once. As I have over 100 Variables the "colnames" would be a bit too complicated.
Is there a command that can do that?

Thank you!

Upvotes: 0

Views: 31

Answers (3)

akrun
akrun

Reputation: 887118

We can use str_remove

library(dplyr)
library(stringr)
dat1 %>%
   rename_all(~ str_remove(., '_T1'))

Upvotes: 1

Seyma Kalay
Seyma Kalay

Reputation: 2859

this may also work,

  names(dat1) <- gsub(x = names(dat1), pattern = "\\_T1", replacement = "") 
      dat1
 comp_01 comp_02 comp_03 res_01 res_02 res_03 res_04
1       1       1       2      1      5      5      5
2       2       1       3      3      4      4      1
3       3       1       3      1      3      2      2
4       4       2       5      5      3      2      2
5       5       1       4      1      2      1      3

Upvotes: 0

Ronak Shah
Ronak Shah

Reputation: 388982

You can use sub :

names(dat1) <- sub('_T1', '', names(dat1))
dat1

#  comp_01 comp_02 comp_03 res_01 res_02 res_03 res_04
#1       1       1       2      1      5      5      5
#2       2       1       3      3      4      4      1
#3       3       1       3      1      3      2      2
#4       4       2       5      5      3      2      2
#5       5       1       4      1      2      1      3

In dplyr, you can use rename_with :

library(dplyr)
dat1 %>% rename_with(~sub('_T1', '', .))

Upvotes: 1

Related Questions