Хотя это и не точно, вы можете считать аргумент функции переданным по значению, поэтому очевидно, что изменения, внесенные в формальный параметр функции, не влияют на фактический аргумент.
Любой предложения по исправлениям были бы хорошими.
Если вы действительно хотите, чтобы функция изменила свой аргумент, вы можете использовать методику, описанную, например, в Вызов по ссылке в R ; по сути, просто заверните свое назначение в eval.parent(substitute(…))
.
change_specific_column_name <- function(data.frame, old_column_name, new_column_name)
eval.parent(substitute(names(data.frame)[names(data.frame) == old_column_name] <- new_column_name))