我创建了一个简单的数据框(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
Run Code Online (Sandbox Code Playgroud)
我想将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"
Run Code Online (Sandbox Code Playgroud)
我知道如何在一行中做到这一点:
colnames(df)[3] = metric
Run Code Online (Sandbox Code Playgroud)
但我想以某种tidyverse方式做到这一点,所以我可以在管道中使用它.我一直在修补replace_但我只是设法得到错误:
> dplyr::rename_(df, "ticker" = metric)
Error: `next_ret_1M` contains unknown variables
Run Code Online (Sandbox Code Playgroud)
MrF*_*ick 19
使用最新的dplyr(> 0.7.0)
rename(df, !!metric:=value)
Run Code Online (Sandbox Code Playgroud)
语法为"new_name = old_name",您需要使用:=with !!将变量放在参数名称的左侧.
| 归档时间: |
|
| 查看次数: |
5758 次 |
| 最近记录: |