Meu objetivo é encontrar a data em um dia posterior na semana com base nas informações que já tenho, que é outra data no início da semana. Neste caso, tenho uma data de 2025-02-16 que posso usar weekdays() para descobrir que é uma segunda-feira. Agora, quero encontrar datas para todos os outros dias da semana de segunda a domingo, idealmente retornando os dias e datas em um dataframe para uso posterior (esta parte não é essencial).
theDate = "2025-02-17"
theDay = "Monday"
Meu pensamento inicial era fazer isso em um loop while como este, embora funcione, sinto que há maneiras melhores de fazer o que preciso, pois teria que repetir isso algumas vezes.
while(weekdays(as.Date(theDate))!="Sunday"){
myDate = theDate+1
}
Meu objetivo final é algo como;
datesdf
Monday Tuesday Wednesday Thursday Friday Saturday Sunday
2025-02-16 2025-02-17 2025-02-18 2025-02-19 2025-02-20 2025-02-21 2025-02-22
lubridate
As funções de piso e teto do para datas ajudarão com isso:Isso deve ser suficiente para você começar. Se quiser colocar as datas do vetor resultante em um quadro de dados e nomear as colunas com os nomes dos dias, deixo isso com você.
1) cut.Date Converta
theDate
para a classe Date e usecut
para obter a segunda-feira anterior ou a data atual se já for segunda-feira. Adicionar 0:6 fornece todas as datas da semana. Defina os nomes usandoweekdays
e, em seguida, mantenha apenas datas maiores ou iguais atheDate
. Se quiser todas as datas em vez das datas de theDate omita as linhas marcadas com ## . Nenhum pacote é usado.2) nextsun Podemos criar uma função
nextsun
para calcular a data do próximo domingo ou hoje se for domingo e então usarseq
. Isso também usa apenas a base R. A saída é como acima.Se você quiser todas as datas da semana em vez das datas de Date em diante, então
Você poderia criar uma pequena função de ajuda:
Saída:
Você pode adicionar uma
seq
influência à data esubset
aoweekdays
bin por 1str completo.