Bir POSIXct tarih saati verildiğinde, toplama için ayın ilk gününü nasıl ayıklarsınız?Bir POSIXct tarih saatinden ayın ilk günü, lubridate
library(lubridate)
full.date <- ymd_hms("2013-01-01 00:00:21")
Bir POSIXct tarih saati verildiğinde, toplama için ayın ilk gününü nasıl ayıklarsınız?Bir POSIXct tarih saatinden ayın ilk günü, lubridate
library(lubridate)
full.date <- ymd_hms("2013-01-01 00:00:21")
lubridate aşağı tarih-saatleri yuvarlar floor_date
adında bir işlevi vardır.
library(lubridate)
full.date <- ymd_hms("2013-01-01 00:00:21")
floor_date(full.date, "month")
[1] "2013-01-01 UTC"
first.of.month <- ymd(format(full.date, "%Y-%m-01"))
first.of.month
[1] "2013-01-01 UTC"
Ben lubridate kullanmak için bir neden görmüyorum:
full.date <- as.POSIXct("2013-01-11 00:00:21", tz="GMT")
monthStart <- function(x) {
x <- as.POSIXlt(x)
x$mday <- 1
as.Date(x)
}
monthStart(full.date)
#[1] "2013-01-01"
+1 bir dize biçimlendirme kesmek kullanmıyor (benim gibi). – nacnudus
Sadece buna rastladım, bunun için iyi bir yol. Bunu gerçekten kolaylaştırıyor, aynı zamanda kırılganlıkla da karmaşıklaştırıyordu. –
i başka bir çözüm var: unit = "month"
ile çağrılması ne istediğinizi tam olarak yapar
first.of.month <- full.date - mday(full.date) + 1
ama kütüphaneyi 'lubridate' veya 'date.table' (data.table ile toplama) ihtiyacı
Bunu yapmanın bir yolunu biliyorum, umarım orada daha akıllı yollar vardır. – nacnudus