いろいろ倉庫

KNIME、EXCEL、R、Pythonなどの備忘録

【R】dplyrのmutateで変数を列名に使いたい

・お題:dplyrのmutate関数で、data.frameに列を追加することができる。この際に列名に変数を使おうとするとうまくいかないので、何とかしたい。

 

# ライブラリを読み込んで、データフレームを作る。

library(tidyverse)

df <- data.frame(A = c(1,2,3),
                 B = c("abc", "def", "ghi"))

df

 

# 適当にmutateで列を追加する。列名 = ベクトル、という形で指定すれば良い。

mutate(df, c = c("tanaka", "yamada", "fujiwara"))

 

# 列名に変数を使ってみる。と、オブジェクト名col_namesを列名と認識してしまう。

col_name <- "test"

mutate(df, col_name = c("tanaka", "yamada", "fujiwara"))

 

・以下を参考に解決できた。

qiita.com

 

# !!オブジェクト名:=にすれば良いらしい。

mutate(df, !!col_name := c("tanaka", "yamada", "fujiwara"))

 

おわり