我想重命名在 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
Run Code Online (Sandbox Code Playgroud)
以下代码不起作用,任何想法。
df %>%
mutate( yrMth = group_by(format(date2, "%Y-%m")))
df %>%
rename( yrMth = group_by(format(date2, "%Y-%m")))
Run Code Online (Sandbox Code Playgroud)
小智 7
无需使用mutate或rename。正如 eipi10\xc2\xb4s 评论所述,只需执行以下操作即可轻松实现:
df %>% \n group_by(yrMth = format(date2, "%Y-%m"))\nRun Code Online (Sandbox Code Playgroud)\n\n如果您要动态命名变量,这将是一个选项:
\n\nname <- "yrMth2"\n\ndf %>% \n group_by(!!name := get(format(date2, "%Y-%m")) )\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
5750 次 |
| 最近记录: |