Logic rename()is equal new_name = old_name, so it ChangedNameAgain = 1will make more sense than 1 = ChangedNameAgain.
I would suggest:
mtcars %>% rename_(ChangedNameAgain = names(.)[1])
Edit
dplyr rlang, 0.6/0.7 dplyr.
rename, , , @jzadra , "foo bar".
rlang. , , :
df <- tibble("foo" = 1:2, "bar baz" = letters[1:2])
rename(), , , . , FIXME ( FIXME ?) ( dplyr 0.7.4), :
df %>% rename(qux = !! quo(names(.)[[2]]))
select, . , rename:
df %>% select(qux = !! quo(names(.)[[2]]), everything())
, :=, . , , " " ( vignette) enquo() quo_name() ( , , ):
rename_col_by_position <- function(df, position, new_name) {
new_name <- enquo(new_name)
new_name <- quo_name(new_name)
select(df, !! new_name := !! quo(names(df)[[position]]), everything())
}
:
rename_col_by_position(df, 2, "qux")
quosure:
rename_col_by_position(df, 2, quo(qux))
:
rename_col_by_position(df, 2, qux)
:
rename_col_by_position(df, 2, `qux quux`)