将日期分为周和年

时间:2014-06-03 11:29:14

标签: r date

目前我的数据框的日期显示在'日期'列为01/01/2007等我想将这些转换为周/年值,即01/2007。有任何想法吗? 我一直在尝试这样的事情并且没有在哪里......

enviro$Week <- strptime(enviro$Date, format= "%W/%Y")

2 个答案:

答案 0 :(得分:2)

您必须先转换为日期,然后您可以使用格式转换回一年中的一周,例如:

### Converts character to date
test.date <- as.Date("10/10/2014", format="%m/%d/%Y")

### Extracts only Week of the year and year
format(test.date, format="Week number %W of %Y")
[1] "Week number 40 of 2014"

### Or if you prefer
format(date, format="%W/%Y")
[1] "40/2014"

所以,在你的情况下,你会做这样的事情:

enviro$Week <- format(as.Date(enviro$Date, format="%m/%d/%Y"), format= "%W/%Y")

但请记住,仅当您的数据不是日期格式时才需要部分as.Date(enviro$Date, format="%m/%d/%Y"),并且您还应该使用正确的格式参数将您的字符转换为日期,如果是这样的话。

答案 1 :(得分:0)

enviro$Date的班级是什么?如果是Date类,可能有更好的方法,否则你可以尝试

v <- strsplit(as.character(enviro$Date), split = "/")
weeks <- sapply(v, "[", 2)
years <- sapply(v, "[", 3)
enviro$Week <- paste(weeks, years, sep = "/")