如何将列重命名为今天的日期?

时间:2016-02-18 12:07:02

标签: r dataframe rename dplyr

我希望将专栏重命名为今天的日期:

我已经尝试了基本功能Sys.Date()& dplyr pkg采用以下语法:

library(dplyr)
df2 <- df1 %>% select(Column 1, Column 2) %>% rename(toString(Sys.Date())= 'Old Column Name')

不起作用。有什么想法吗?

3 个答案:

答案 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