【发布时间】:2017-06-02 05:20:18
【问题描述】:
我想重命名在 dplyr 中使用 group_by 创建的列。创建的名称是format(date2, "%Y-%m"),不是很有帮助。我已经尝试了几件事。我希望新名称为“yrMth”
df <- data.frame(Person = c(rep("abc",3), rep("eee", 5)),
date = c("4/1/2016", "4/3/2016", "4/12/2016", "5/3/2016", "5/4/2016","5/10/2016","5/6/2016", "5/11/2016"),
account = c("123","123","123","222","222","333","222","333"), stringsAsFactors = F)
df$date2 <- mdy(df$date)
df %>%
group_by(format(date2, "%Y-%m"))
Person date account date2 `format(date2, "%Y-%m")`
<chr> <chr> <chr> <date> <chr>
1 abc 4/1/2016 123 2016-04-01 2016-04
2 abc 4/3/2016 123 2016-04-03 2016-04
3 abc 4/12/2016 123 2016-04-12 2016-04
4 eee 5/3/2016 222 2016-05-03 2016-05
5 eee 5/4/2016 222 2016-05-04 2016-05
6 eee 5/10/2016 333 2016-05-10 2016-05
7 eee 5/6/2016 222 2016-05-06 2016-05
8 eee 5/11/2016 333 2016-05-11 2016-05
以下代码不起作用,任何想法。
df %>%
mutate( yrMth = group_by(format(date2, "%Y-%m")))
df %>%
rename( yrMth = group_by(format(date2, "%Y-%m")))
【问题讨论】:
-
不是一个大 dplyr 专家,但你不能先变异然后分组 -
df %>% mutate(yrMth=format(date2, "%Y-%m")) %>% group_by(yrMth)吗?我会拭目以待,看看是否有 dplyr 高手能提供更好的方法。 -
这就是你想要做的:
df %>% group_by(yrMth=format(date2, "%Y-%m"))。这实际上给出了与df %>% mutate(yrMth=format(date2, "%Y-%m"))相同的结果,只是在前一种情况下,数据框还具有分组属性。但是,为什么不在您第一次创建date2时按照您想要的方式格式化日期呢?