【发布时间】:2021-02-06 17:43:10
【问题描述】:
抱歉,我似乎找不到这个看似基本问题的解决方案。
这个
p %>% mutate(date = as.Date(mr_daterd, format = '%d/%m/%Y'), mr_daterd = mr_daterd)
给予
mr_daterd date
1 28/03/2013 2013-03-28
2 10/01/2009 2009-01-10
3 16/09/2005 2005-09-16
4 28/03/2013 2013-03-28
5 28/03/2013 2013-03-28
6 28/03/2013 2013-03-28
我需要p$date 成为dd/mm/yyyy。
p <- structure(list(mr_daterd = c("18/03/2011", "10/01/2009", "10/01/2009",
"11/03/2004", "10/01/2009", "18/03/2011", "16/09/2005", "10/01/2009",
"18/03/2011", "10/01/2009", "18/03/2011", "18/03/2011", "28/03/2013 ",
"28/03/2013 ", "10/01/2009")), row.names = c(NA, -15L), class = "data.frame")
【问题讨论】:
-
试试这个:
p %>% mutate(date = as.Date(mr_daterd, format = '%d/%m/%Y'), mr_daterd = mr_daterd,date2=format(date,'%d/%m/%Y')) -
另见
date2,其中包含您想要的样式。R中的日期存储为year-month-day,如果要更改,则必须使用format()。 -
谢谢@Duck。看来我必须在您的解决方案中执行两个步骤:首先创建
date=as.Date..,然后从date创建date2=format..- 没有一个解决方案可以满足我的要求吗?我试过date=format(as.Date(mr_daterd, format = '%d/%m/%Y'),'%d/%m/%Y'),但没有成功。 -
也许试试这个
p %>% mutate(date=format(as.Date(mr_daterd, format = '%d/%m/%Y'),'%d-%m-%Y')) -
cmirian,您的日期已经采用“dd/mm/yyyy”格式。如果您希望它们作为 R 中的实际日期对象,它们将以
yyyy-mm-dd格式存储和显示。当您使用format时,您会将它们转换回字符。如果您需要以某种方式为某个输出显示日期,您可以在处理日期后将其作为“最后一件事”。
标签: r dataframe date dplyr as.date