mogę dzisiejszą datę:R: uzyskanie ostatni piątek datę
Sys.Date()
Ale jak mogę dostać ostatni piątek datę? Próbowałem:
library(xts)
date1 <- Sys.Date()
to.weekly(date1)
Ale to daje błąd.
Dziękuję za pomoc
mogę dzisiejszą datę:R: uzyskanie ostatni piątek datę
Sys.Date()
Ale jak mogę dostać ostatni piątek datę? Próbowałem:
library(xts)
date1 <- Sys.Date()
to.weekly(date1)
Ale to daje błąd.
Dziękuję za pomoc
myślę, że to powinno działać:
library(lubridate)
Sys.Date() - wday(Sys.Date() + 1)
ostatni piątek było 4 dni temu, a więc:
Sys.Date()-4
> Sys.Date()-4
[1] "2015-03-06"
OR dla każdego dnia tygodnia, używanie base
:
Sys.Date()-(as.POSIXlt(Sys.Date())$wday+2)
Oto funkcja, która znajdzie ostatnią datę dla każdego dnia tygodnia:
getlastdate <- function(day) {
library(lubridate)
dates <- seq((Sys.Date()-7), (Sys.Date()-1), by="days")
dates[wday(dates, label=T)==day]
}
getlastdate("Mon")
# "2015-03-09"
wprowadzić dzień tygodnia w formie skróconej: tj
Sun Mon Tues Wed Thurs Fri Sat
Spróbuj tego:
library(zoo)
lastfri(Sys.Date())
gdzie lastfri
jest tym samym, co funkcja linii jednoliniowej nextfri
w tej winiecie zoo, zoo quickref vignette, z wyjątkiem tego ceiling
zostaje zastąpione przez floor
. Zauważ, że lastfri
jest wektoryzowany, tzn. Może przyjmować wektor dat wejściowych i generuje wektor dat wyjściowych. Na przykład,
library(zoo)
Sys.Date()
## 2015-03-10
lastfri(Sys.Date() + 0:6)
## [1] "2015-03-06" "2015-03-06" "2015-03-06" "2015-03-13" "2015-03-13"
## [6] "2015-03-13" "2015-03-13"
Zatem ostatni piątek był 06. marca i trzymamy się 6 marca do dnia przesuwa się na następny piątek w tym momencie ostatni piątek jest 13 marca.
Na stronie: Następny piątek to piątek 13.
Zdecydowanie nie oczekiwałem, że będzie do tego gotowa funkcja. Chłodny. –
Oczekuję, że PO będzie chciał pracować dłużej niż we wtorki. – CephBirk
Chociaż może to być prawda, nie została określona. Dodałem rozwiązanie przy użyciu 'base'. –