润滑日期到工作日转换错误
lubridate date to weekday conversion error
我目前正在努力获取格式为 month/date/year hour:minute 的星期几的名称。但是包 lubridate
和
命令 file1_frame$day <- wday(file1_frame$V9)
OR file1_frame$day <- weekdays(as.Date(file1_frame$V9))
导致一周中的几天根本不正确。例如,R 中的输出如下所示。
Time Day of week
4/6/2018 20:14 Sunday
4/7/2018 2:13 Tuesday
4/6/2018
的正确日期是 "Friday"
,4/7/2018
的正确日期是 "Saturday"
。
这是包问题还是 R studio 问题?我该如何解决这个问题。谢谢
为了 R 正确识别日期,您需要格式化日期。看看 ?as.Date
.
library(lubridate)
> weekdays(as.Date("4/6/2018 20:14", "%m/%d/%Y"))
[1] "Friday"
> weekdays(as.Date("4/7/2018 2:13", "%m/%d/%Y"))
[1] "Saturday"
下面是 @jaySF 回复的纯粹 lubridate
替代。我包含了 label
和 abbr
参数供您参考。如果你想使用缩写或数字,你可以调整它们。
library(lubridate)
wday(mdy_hm("4/6/2018 20:14"), label = T, abbr = F)
# [1] Friday
# Levels: Sunday < Monday < Tuesday < Wednesday < Thursday < Friday < Saturday
wday(mdy_hm("4/7/2018 2:13"), label = T, abbr = F)
# [1] Saturday
# Levels: Sunday < Monday < Tuesday < Wednesday < Thursday < Friday < Saturday
我们可以在没有任何包的情况下做到这一点。使用来自 base R
的 format
format(as.Date("4/6/2018 20:14", "%m/%d/%Y"), "%A")
#[1] "Friday"
将它包装成一个函数
fwday <- function(date, fmt) format(as.Date(date, fmt), "%A")
fwday("4/6/2018 20:14", "%m/%d/%Y")
#[1] "Friday"
fwday("4/7/2018 2:13", "%m/%d/%Y")
#[1] "Saturday"
我目前正在努力获取格式为 month/date/year hour:minute 的星期几的名称。但是包 lubridate
和
命令 file1_frame$day <- wday(file1_frame$V9)
OR file1_frame$day <- weekdays(as.Date(file1_frame$V9))
导致一周中的几天根本不正确。例如,R 中的输出如下所示。
Time Day of week
4/6/2018 20:14 Sunday
4/7/2018 2:13 Tuesday
4/6/2018
的正确日期是 "Friday"
,4/7/2018
的正确日期是 "Saturday"
。
这是包问题还是 R studio 问题?我该如何解决这个问题。谢谢
为了 R 正确识别日期,您需要格式化日期。看看 ?as.Date
.
library(lubridate)
> weekdays(as.Date("4/6/2018 20:14", "%m/%d/%Y"))
[1] "Friday"
> weekdays(as.Date("4/7/2018 2:13", "%m/%d/%Y"))
[1] "Saturday"
下面是 @jaySF 回复的纯粹 lubridate
替代。我包含了 label
和 abbr
参数供您参考。如果你想使用缩写或数字,你可以调整它们。
library(lubridate)
wday(mdy_hm("4/6/2018 20:14"), label = T, abbr = F)
# [1] Friday
# Levels: Sunday < Monday < Tuesday < Wednesday < Thursday < Friday < Saturday
wday(mdy_hm("4/7/2018 2:13"), label = T, abbr = F)
# [1] Saturday
# Levels: Sunday < Monday < Tuesday < Wednesday < Thursday < Friday < Saturday
我们可以在没有任何包的情况下做到这一点。使用来自 base R
format
format(as.Date("4/6/2018 20:14", "%m/%d/%Y"), "%A")
#[1] "Friday"
将它包装成一个函数
fwday <- function(date, fmt) format(as.Date(date, fmt), "%A")
fwday("4/6/2018 20:14", "%m/%d/%Y")
#[1] "Friday"
fwday("4/7/2018 2:13", "%m/%d/%Y")
#[1] "Saturday"