How to use rename_with() in pipe to change all column names from vector

I want to apply new column names from a vector to a dataframe.

There are already good answers to this question:
Applying dplyr's rename to all columns while using pipe operator, How do I add a prefix to several variable names using dplyr?

My question is explicitly:
What is the equivalent of rename_with to this:

newcolnames <- c("one", "two", "three", "four", "five")

head(iris) %>% 

head(iris) %>% 

I tried:

head(iris) %>% 
  rename_with(iris, newcolnames)

I want to use explicitly rename_with!

>Solution :

It doesn’t seem like rename_with is the right function for this. I guess you could do

iris %>% 

as kind of a hack. You can also use rename

iris %>% 
  rename(!!!setNames(names(.), newcolnames))

But the setNames method just seems much more apt.

Leave a Reply