Let's say there are a million columns that start with f_
. Let's say there are 3
f_x
f_y
f_z
How can I rename all of them to remove f_
part of their names?
Let's say there are a million columns that start with f_
. Let's say there are 3
f_x
f_y
f_z
How can I rename all of them to remove f_
part of their names?
names(df) <- sub("f_", "", names(df))
Ah thanks, but I'm looking to use dplyr
and stringr
for this.
Sure, you can do that, but I really don't know why you would want to do so. The dplyr & stringr functions just translate into something like the above, but via much more convoluted syntax.
I'm confused if from a million columns starting with f_you want to remove only the 3 begining with f_x/y/z , or get rid of all the f_ stubs throughout ?
Throughout, sorry that wasn't clear
Here is a pipable version; rename_with can take a simple form similar to the base R solution
library(tidyverse)
set.seed(42)
(example_source <- map_dfc(c(letters,LETTERS),\(x_){
nm <- paste0('f_',x_)
tibble({{nm}} := sample.int(n=100,size=1))
}))
example_solve_1 <- example_source
names(example_solve_1) <- sub("f_", "", names(example_solve_1))
example_solve_1
example_solve_2 <- example_source |>
rename_with(.fn = \(x)sub("f_","",x))
identical(example_solve_1,
example_solve_2)
# TRUE
This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.
If you have a query related to it or one of the replies, start a new topic and refer back with a link.