Renomear colunas de um quadro de dados pesquisando o nome da coluna

Estou escrevendo um wrapper para ggplot para produzir vários gráficos com base em vários conjuntos de dados. Como eu estou passando os nomes das colunas para a função, eu preciso renomear os nomes das colunas para que ggplot possa entender a referência.

No entanto, estou lutando com a renomeação das colunas de um quadro de dados

aqui está um quadro de dados:

df <- data.frame(col1=1:3,col2=3:5,col3=6:8)

aqui estão os nomes das minhas colunas para pesquisa:

col1_search <- "col1"
col2_search <- "col2"
col3_search <- "col3"

e aqui estão os nomes das colunas para substituir:

col1_replace <- "new_col1"
col2_replace <- "new_col2"
col3_replace <- "new_col3"

Quando procuro por nomes de coluna, o R ordena os índices da coluna e desconsidera o local da pesquisa.

por exemplo, quando executo o código a seguir, esperava que os novos cabeçalhos fossem new_col1, new_col2 e new_col3, em vez disso, os novos nomes de colunas são: new_col3, new_col2 e new_col1

colnames(df)[names(df) %in% c(col3_search,col2_search,col1_search)] <- c(col3_replace,col2_replace,col1_replace)

Alguém tem uma solução em que eu possa procurar por nomes de coluna e substituí-los nessa ordem?

questionAnswers(4)

yourAnswerToTheQuestion