更改日期列的格式
Change Format of Date Column
我需要使用 RStudio 将一种日期格式转换为另一种日期格式,因为对于 lubridate
和其他与日期相关的函数,进一步的工作需要一种标准的明确格式。我在下面包含了一些示例和信息:
示例数据集:
Function,HiredDate,FiredDate
Waitress,16-06-01 12:40:02,16-06-13 11:43:12
Chef,16-04-17 15:00:59,16-04-18 15:00:59
HiredDate
和 FiredDate
的当前日期格式 (POSIXlt):
"%y-%m-%d %H:%M:%S"
我希望 HireDate
和 FiredDate
的日期格式为:
"%Y-%m-%d %H:%M:%S" / 2016-06-01 12:40:02
或
"%Y/%m/%d %H:%M:%S" / 2016/06/01 12:40:02
原则上,您可以使用strftime函数转换日期和时间:
d <- "2016-06-01 12:40:02"
strftime(d, format="%Y/%m/%d %H:%M:%S")
[1] "2016/06/01 12:40:02"
你的情况是年份问题:
d <- "16-06-01 12:40:02"
strftime(d, format="%Y/%m/%d %H:%M:%S")
[1] "0016/06/01 12:40:02"
按照Dave2e的建议,两位数的年份可以通过%y读取:
strftime(d, format="%y/%m/%d %H:%M:%S")
[1] "16/06/01 12:40:02"
假设你的数据来自20世纪和21世纪,你可以在HireDate和FireDate前面粘贴一个19或20:
current <- 16
prefixHire <- ifelse(substr(data$HireDate, 1, 2)<=currentYear,20,19)
prefixFire <- ifelse(substr(data$FireDate, 1, 2)<=currentYear,20,19)
data$HireDate = paste(prefixHire, data$HireDate, sep="")
data$FireDate = paste(prefixFire, data$FireDate, sep="")
代码通过假设大于当前 ('16) 年份的任何日期实际上来自 20 世纪来生成前缀。然后将前缀粘贴到 HireDate 和 FireDate。
我需要使用 RStudio 将一种日期格式转换为另一种日期格式,因为对于 lubridate
和其他与日期相关的函数,进一步的工作需要一种标准的明确格式。我在下面包含了一些示例和信息:
示例数据集:
Function,HiredDate,FiredDate
Waitress,16-06-01 12:40:02,16-06-13 11:43:12
Chef,16-04-17 15:00:59,16-04-18 15:00:59
HiredDate
和 FiredDate
的当前日期格式 (POSIXlt):
"%y-%m-%d %H:%M:%S"
我希望 HireDate
和 FiredDate
的日期格式为:
"%Y-%m-%d %H:%M:%S" / 2016-06-01 12:40:02
或
"%Y/%m/%d %H:%M:%S" / 2016/06/01 12:40:02
原则上,您可以使用strftime函数转换日期和时间:
d <- "2016-06-01 12:40:02"
strftime(d, format="%Y/%m/%d %H:%M:%S")
[1] "2016/06/01 12:40:02"
你的情况是年份问题:
d <- "16-06-01 12:40:02"
strftime(d, format="%Y/%m/%d %H:%M:%S")
[1] "0016/06/01 12:40:02"
按照Dave2e的建议,两位数的年份可以通过%y读取:
strftime(d, format="%y/%m/%d %H:%M:%S")
[1] "16/06/01 12:40:02"
假设你的数据来自20世纪和21世纪,你可以在HireDate和FireDate前面粘贴一个19或20:
current <- 16
prefixHire <- ifelse(substr(data$HireDate, 1, 2)<=currentYear,20,19)
prefixFire <- ifelse(substr(data$FireDate, 1, 2)<=currentYear,20,19)
data$HireDate = paste(prefixHire, data$HireDate, sep="")
data$FireDate = paste(prefixFire, data$FireDate, sep="")
代码通过假设大于当前 ('16) 年份的任何日期实际上来自 20 世纪来生成前缀。然后将前缀粘贴到 HireDate 和 FireDate。