在R中将日期转换为星期几

时间:2016-04-21 15:13:12

标签: r date

我的数据框中有这种格式的日期:

"02-July-2015"

我需要将其转换为星期几(即183)。类似的东西:

df$day_of_week <- weekdays(as.Date(df$date_column))

但是这并不了解日期的格式。

3 个答案:

答案 0 :(得分:2)

您可以使用lubridate转换为星期几或一年中的某一天。

library(lubridate)

date_string <- "02-July-2015"
dt <- dmy(date_string)
dt
## [1] "2015-07-02 UTC"

### Day of week
wday(dt)
## [1] 5

### Day of year
yday(dt)
## [1] 183

### Or a little shorter to do the same thing for Day of year
yday(dmy("02-July-2015"))
## [1] 183

答案 1 :(得分:1)

day = as.POSIXct("02-July-2015",format="%d-%b-%Y")

# see ?strptime for more information on date-time conversions

# Day of year as decimal number (001–366).
format(day,format="%j")
[1] "183"

#Weekday as a decimal number (1–7, Monday is 1).
format(day,format="%u")    
[1] "4"

答案 2 :(得分:1)

这是anotherFishGuy所假设的,加上将值转换为as.numeric,以便它们适合分类器。

# day <- Sys.time()
as.num.format <- function(day, ...){
   as.numeric(format(day, ...))
}
doy <- as.num.format(day,format="%j")
doy <- as.num.format(day,format="%u")
hour <- as.num.format(day, "%H")