目前我的数据框的日期显示在'日期'列为01/01/2007等我想将这些转换为周/年值,即01/2007。有任何想法吗? 我一直在尝试这样的事情并且没有在哪里......
enviro$Week <- strptime(enviro$Date, format= "%W/%Y")
答案 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 = "/")