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?