我有一个数据框,其中包含标题中指定格式的日期列,我想知道将它们转换为标准日期格式的简单方法,即" yyyy-mm- DD"或类似的。
所以目前我的日期列格式为
2012 Week15
2012 Week12
2012 Week16
2012 Week25
2012 Week4
到目前为止,我已经尝试过:
df$Date<-gsub("Week","",df$Date)
con.date<-as.Date(df$Date, format="%Y %V")
df<-data.frame(date=con.date,df[,columns excluding the date column])
和
df$Date<-as.Date( df$Date,"%Y %V" )
但这些只是每年产生相同的日期,即
2012-07-31
2012-07-31
2012-07-31
出于某种原因。
非常感谢任何帮助!
答案 0 :(得分:1)
目前我编写的函数只将长度为1的向量转换为所需的输出。我把01-01到01-07算作第1周等等。对于第1周,我将输出一周的第一个日期。
WeekToDate <- function(Date) {
install.packages("Hmisc")
library(Hmisc)
year <- substr(Date, 1,4)
week <- substring(Date, 10)
date1 <- as.Date(paste(year, "-01-01", sep=""), format="%Y-%m-%d")
Date.list <- seq(date1, date1+yearDays(date1), by="day")
data <- data.frame(Date.list)
data$Week <- as.numeric(format(data$Date.list, "%U"))
data <- data[!duplicated(data$Week),]
output <- data[data$Week==week,]$Date.list
return(output)
}
输出
> WeekToDate("2013 Week15")
Installing package into ‘D:/Documents/R/win-library/3.0’
(as ‘lib’ is unspecified)
Warning: package ‘Hmisc’ is in use and will not be installed
[1] "2013-04-14"