lubridate - 从日期中提取两位数的日期

kra*_*ray 2 r lubridate tidyr

我需要从日期中提取两位数的天数。

例如:

date <- as.Date(01-01-2016)
Run Code Online (Sandbox Code Playgroud)
  • year(date) 会给 '2016'
  • month(date) 会产生“1”
  • day(date) 会返回“1”

我想要month()day()返回 '​​01'

标准的 %D 或 %M 在这里似乎不起作用。任何建议,将不胜感激!

小智 9

假设您的“日期”是日期格式,则 format.Date() 函数应该可以解决问题:

format.Date(date, "%m")
Run Code Online (Sandbox Code Playgroud)

注意:在您的问题中:

date <- as.Date(01-01-2016)
Run Code Online (Sandbox Code Playgroud)

不会以日期格式返回“日期”。它将返回错误,因为您提供给 as.Date 的参数被视为数字。您可能希望将日期作为字符串提供并指定其写入格式,例如:

date <- as.Date("01-01-2016", format = "%m-%d-%Y") 
format.Date(date, "%m")
Run Code Online (Sandbox Code Playgroud)

如果不指定格式,as.Date 将尝试格式“%Y-%m-%d”。