web-dev-qa-db-ja.com

lubridateを使用したPOSIXct日付時刻からの月の最初の日

POSIXctの日付時刻が与えられた場合、集計のために月の最初の日をどのように抽出しますか?

library(lubridate)

full.date <- ymd_hms("2013-01-01 00:00:21")
20
nacnudus

lubridate には、日時を切り捨てるfloor_dateという関数があります。 unit = "month"で呼び出すと、まさに次のようになります。

library(lubridate)
full.date <- ymd_hms("2013-01-01 00:00:21")
floor_date(full.date, "month")

[1] "2013-01-01 UTC"
47
Frank

Lubridateを使用する理由がわかりません。

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"
15
Roland
first.of.month <- ymd(format(full.date, "%Y-%m-01"))
first.of.month

[1] "2013-01-01 UTC"
8
nacnudus

私は別の解決策を持っています:

first.of.month <- full.date - mday(full.date) + 1

ただし、ライブラリ 'lubridate'または 'date.table'(data.tableとの集計)が必要です。

1
iauhs