可以告訴我為什么下面生成的表格中的順序不正確嗎?。我從 11/07(星期日)過濾到 11/13(星期六)。但是正如您所看到的,在生成的表中,星期六是第二個而不是最后一個。其余的還好,只有星期六出了問題。
library(dplyr)
Test <- structure(list(date1 = as.Date(c("2021-11-01","2021-11-01","2021-11-01","2021-11-01","2021-11-01","2021-11-01","2021-11-01")),
date2 = as.Date(c("2021-10-18","2021-10-19","2021-10-20","2021-10-21","2021-10-22","2021-10-23","2021-10-24")),
Week = c("Monday", "Tuesday", "Wednesday", "Thursday","Friday","Saturday","Sunday"),
Category = c("FDE", "FDE", "FDE", "FDE","FDE","FDE","FDE"),
time = c(4, 6, 3, 2,3,3,4)), class = "data.frame",row.names = c(NA, -7L))
wk_port2eng <- data.frame(
WeekE = c("Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"),
WeekP = c("segunda-feira", "terca-feira", "quarta-feira", "quinta-feira", "sexta-feira", "sabado", "domingo")
)
left_join(Test, wk_port2eng, by = c("Week" = "WeekE")) %>%
arrange(match(WeekP, weekdays(as.Date(c("2021-11-07", "2021-11-13"))))) %>%
select(-WeekP)
date1 date2 Week Category time
1 2021-11-01 2021-10-24 Sunday FDE 4
2 2021-11-01 2021-10-23 Saturday FDE 3
3 2021-11-01 2021-10-18 Monday FDE 4
4 2021-11-01 2021-10-19 Tuesday FDE 6
5 2021-11-01 2021-10-20 Wednesday FDE 3
6 2021-11-01 2021-10-21 Thursday FDE 2
7 2021-11-01 2021-10-22 Friday FDE 3
uj5u.com熱心網友回復:
您可以使用按作業日排序 lubridate::wday
left_join(Test, wk_port2eng, by = c("Week" = "WeekE")) %>%
arrange(match(WeekP, weekdays(as.Date(c("2021-11-07", "2021-11-13"))))) %>%
arrange(lubridate::wday(date2)) %>%
select(-WeekP)
#> date1 date2 Week Category time
#> 1 2021-11-01 2021-10-24 Sunday FDE 4
#> 2 2021-11-01 2021-10-18 Monday FDE 4
#> 3 2021-11-01 2021-10-19 Tuesday FDE 6
#> 4 2021-11-01 2021-10-20 Wednesday FDE 3
#> 5 2021-11-01 2021-10-21 Thursday FDE 2
#> 6 2021-11-01 2021-10-22 Friday FDE 3
#> 7 2021-11-01 2021-10-23 Saturday FDE 3
由reprex 包( v2.0.0 )于 2021 年 11 月 7 日創建
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/352273.html
標籤:r
上一篇:R根據多個條件分配值
