“转换格式日期”;2012年第15周“;在r

“转换格式日期”;2012年第15周“;在r,r,R,我有一个带有标题中指定格式的日期列的数据框,我想知道一种将其转换为标准日期格式的简单方法,即“yyy-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

我有一个带有标题中指定格式的日期列的数据框,我想知道一种将其转换为标准日期格式的简单方法,即“yyy-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]) 
出于某种原因


任何帮助都将不胜感激

当时,我编写了一个函数,它只将长度为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)
}

“2012 Week15”的预期输出是什么?2012-4-19,即2012年的第15周嗨,David,我从日期栏中添加了一些示例输出,很抱歉对周和日期的混淆。strptime说,这一周从周一开始,但%V“在输入时被接受但忽略”。你的例子是忽略一周,只给你一年中的中间一天。你希望你的周定义从周一、周六、周日开始吗?如果一年从星期四开始,你能有一个短的第一周吗?还是从每年的1月1日开始?这可能只是在任何给定年份的1月1日增加
7*周的问题。
2012-07-31  
2012-07-31  
2012-07-31  
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"