我的数据框中有这种格式的日期:
"02-July-2015"
我需要将其转换为星期几(即183)。类似的东西:
df$day_of_week <- weekdays(as.Date(df$date_column))
但是这并不了解日期的格式。
答案 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")