我希望将专栏重命名为今天的日期:
我已经尝试了基本功能Sys.Date()& dplyr pkg采用以下语法:
library(dplyr)
df2 <- df1 %>% select(Column 1, Column 2) %>% rename(toString(Sys.Date())= 'Old Column Name')
不起作用。有什么想法吗?
答案 0 :(得分:10)
在base
R:
names(df1)[names(df1) == "Old Column Name"] <- as.character(Sys.Date())
答案 1 :(得分:6)
使用rename_
中的dplyr
:
df %>% rename_(.dots = setNames("Old Column Name ", sprintf("`%s`", format(Sys.Date(), format = "%Y-%m-%d"))))
或者
# using the built-in 'iris' data:
rename_(iris, .dots = setNames('Species', Sys.Date()))
答案 2 :(得分:4)
如果你坚持使用dplyr和pipe,那么只需定义:
daynamer=function(df, oldname){
args=list(df, oldname)
names(args)=c(".data",toString(Sys.Date()))
do.call(rename_, args)}
然后你可以这样做:
> df1 = data.frame(x=1:5, y=1:5)
> df1 %>% daynamer("x")
2016-02-18 y
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5