#r
Вопрос:
Приведенный ниже исполняемый код работает нормально, как вы можете видеть. Обратите внимание , что для m
, я указываю Week
и Code
. Ибо Week
я указываю это как пятницу , так как я выбрал dmda
16/07, то есть пятницу. Тем не менее, я хотел бы знать, возможно ли, чтобы код понимал, что 16/07-это пятница, и я не указываю m
Week == "Friday"
в.
library(dplyr)
df <- structure(
list(date = c("2021-06-30","2021-06-30","2021-07-07","2021-07-07","2021-07-09","2021-07-09","2021-07-09","2021-07-16"),
Code = c("ABC","BCD","ABC","BCD","DCE","CDE","DCE","CDE"),
Week= c("Wednesday","Wednesday","Wednesday","Wednesday","Friday","Friday","Friday","Friday"),
DR1 = c(4,1,4,3,3,4,3,5)),
class = "data.frame", row.names = c(NA, -8L))
dmda<-"2021-07-16"
CodeChosse<-"CDE"
m<-df %>%
group_by(Code,Week) %>%
summarize(across(starts_with("DR1"), mean))
> m
# A tibble: 4 x 3
# Groups: Code [4]
Code Week DR1
<chr> <chr> <dbl>
1 ABC Wednesday 4
2 BCD Wednesday 2
3 CDE Friday 4.5
4 DCE Friday 3
m<-subset(m, Week == "Friday" amp; Code == CodeChosse)$DR1
> m
[1] 4.5
Ответ №1:
Вы можете использовать match
—
m <- subset(m, Week == df$Week[match(dmda, df$date)] amp; Code == CodeChosse)$DR1
m
#[1] 4.5
Ответ №2:
Мы можем сделать это с помощью tidyverse
library(dplyr)
m <- m %>%
filter(Week %in% df$Week[match(dmda, df$date)], Code == CodeChoose)$DR1
Ответ №3:
Будние дни были бы уместны. Попробуй:
weekdays(as.Date('16-08-2012','%d-%m-%Y'))
Вы можете найти больше на:
https://www.rdocumentation.org/packages/base/versions/3.6.2/topics/weekdays