簡単なデータフレームを作成しました(以下のdput
)。
date ticker value
------------------------------
2016-06-30 A2M.ASX 0.0686
2016-07-29 A2M.ASX -0.0134
2016-08-31 A2M.ASX -0.0650
2016-09-30 A2M.ASX 0.0145
2016-10-31 A2M.ASX 0.3600
2016-11-30 A2M.ASX -0.1429
value
列の名前をmetric
変数名にあるものに変更し、dplyr
の方法で変更します。
私のサンプルデータ:
df = structure(list(date = c("2016-06-30", "2016-07-29", "2016-08-31", "2016-09-30", "2016-10-31", "2016-11-30"), ticker = c("A2M.ASX", "A2M.ASX", "A2M.ASX", "A2M.ASX", "A2M.ASX", "A2M.ASX"), value = c(0.0686, -0.0134, -0.065, 0.0145, 0.36, -0.1429)), .Names = c("date", "ticker", "value"), row.names = c(NA, 6L), class = "data.frame")
metric = "next_return"
私はそれを一行で行う方法を知っています:
colnames(df)[3] = metric
しかし、それをtidyverse
の方法で実行して、パイプで使用できるようにします。私はreplace_
をいじっていますが、なんとかエラーが発生します:
> dplyr::rename_(df, "ticker" = metric)
Error: `next_ret_1M` contains unknown variables
最新のdplyr(> 0.7.0)を使用すると、
rename(df, !!metric:=value)
構文は "new_name = old_name"であり、:=
を!!
とともに使用して、変数をパラメーター名の左側に配置する必要があります。