Skip to content
Prev 391005 / 398506 Next

how to rename variables by lopping off first 3 characters

As R packages are frowned on by some, may I suggest 
a rather trivial base R solution like:

names(mydf) <- sub("^i[.][.]", "", names(mydf))

To be clear, the request is not about general R variable but about 
the names of columns in a data.frame or tibble so all you need to
do in your simple scenario is make some regular expression that
matches only you specified string of "i.." at the beginning of each
word and then use sub() to replace it with nothing. Give it an argument
that contains the current names in your data.frame and save the selectively
shortened results as the new names.

And, yes, dplyr keeps evolving ever more general ways to do
things and those are fine too.

Of course not all changes of this kind can be made by finding a regular
expression.


-----Original Message-----
From: Stefan Schreiber <sschreib at ualberta.ca>
To: Christopher W Ryan <cryan at binghamton.edu>
Cc: R-help <R-help at r-project.org>
Sent: Mon, Mar 14, 2022 1:07 pm
Subject: Re: [R] how to rename variables by lopping off first 3 characters

This should work (couldn't check - not at my computer right now):

my_df %<% rename_at(vars(starts_with("i..")), funs(str_replace(., "i..",
"")))

There are also a lot of tutorials on the internet. Google something like
"rename_at str_replace"

HTH,
Stefan

On Mon, Mar 14, 2022, 10:27 Christopher W Ryan via R-help, <
r-help at r-project.org> wrote:

            

            
??? [[alternative HTML version deleted]]

______________________________________________
R-help at 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.