dplyr::rename(new = old)の中で変数を使うとき
もんだい
dplyr::rename(new=old)
を関数の中などで使う際に、new
に変数を使いたい場面があります
rename.R
varname <- "new_varname"
df <- iris
df %>%
rename(varname = Sepal.Length) %>%
colnames()
このままだとvarname
が変数("new_varname")ではなく文字列の"varname"として扱われてしまいます
[1] "varname" "Sepal.Width" "Petal.Length" "Petal.Width" "Species"
かいけつさく
特別な代入演算子を使います
Pass a variable to dplyr "rename" to change columnname
rename.R
varname <- "new_varname"
df <- iris
df %>%
rename(!!varname := Sepal.Length) %>%
colnames()
メモ
以前の記事では以下のように書いていたのですが、rename_() is deprecated.
とのことなので更新いたしました。
rename_()を使えば、変更前の変数名に関数を使ってもアクセスできるようです.