將存儲在字符和數字向量中的日期轉換為 Date 或 POSIXct 對象(請參閱 tz
參數)。這些函數可以識別任意非數字分隔符以及無分隔符。隻要格式順序正確,即使輸入向量包含不同格式的日期,這些函數也能正確解析日期。請參閱示例。
用法
ymd(
...,
quiet = FALSE,
tz = NULL,
locale = Sys.getlocale("LC_TIME"),
truncated = 0
)
ydm(
...,
quiet = FALSE,
tz = NULL,
locale = Sys.getlocale("LC_TIME"),
truncated = 0
)
mdy(
...,
quiet = FALSE,
tz = NULL,
locale = Sys.getlocale("LC_TIME"),
truncated = 0
)
myd(
...,
quiet = FALSE,
tz = NULL,
locale = Sys.getlocale("LC_TIME"),
truncated = 0
)
dmy(
...,
quiet = FALSE,
tz = NULL,
locale = Sys.getlocale("LC_TIME"),
truncated = 0
)
dym(
...,
quiet = FALSE,
tz = NULL,
locale = Sys.getlocale("LC_TIME"),
truncated = 0
)
yq(..., quiet = FALSE, tz = NULL, locale = Sys.getlocale("LC_TIME"))
ym(..., quiet = FALSE, tz = NULL, locale = Sys.getlocale("LC_TIME"))
my(..., quiet = FALSE, tz = NULL, locale = Sys.getlocale("LC_TIME"))
參數
- ...
-
可疑日期的字符或數字向量
- quiet
-
合乎邏輯的。如果是
TRUE
,函數將在不顯示常規消息的情況下進行計算。 - tz
-
時區指示器。如果
NULL
(默認),則返回 Date 對象。否則,時區屬性設置為tz
的 POSIXct 。 - locale
-
要使用的區域設置,請參閱locales。在 Linux 係統上,您可以使用
system("locale -a")
列出所有已安裝的區域設置。 - truncated
-
整數。可以截斷的格式數。
細節
在異構日期格式的情況下,ymd()
係列根據輸入向量的子集猜測格式。如果輸入向量包含許多缺失值或非日期字符串,則子集可能不包含有意義的日期,並且不會猜測日期時間格式,從而導致 All formats failed to parse
錯誤。在這種情況下,請參閱parse_date_time()
以獲得更靈活的解析接口。
如果 truncated
參數非零,ymd()
函數還會檢查截斷的格式。例如, ymd()
和 truncated = 2
也會解析不完整的日期,例如 2012-06
和 2012
。
注意:ymd()
函數族基於parse_date_time()
因此直接將數字月份放入內部 C 解析器,但使用base::strptime()
按字母順序排列的月份。這意味著一些base::strptime()
的限製繼承於潤滑的解析器。例如,截斷的格式(如%Y-%b
) 不會被解析。數字截斷格式(例如%Y-%m
)正確處理潤滑的 C 解析器。
從 1.3.0 版本開始,潤滑的解析函數不再返回顯示它們用於解析輸入的格式的消息。您可以通過設置來更改此設置lubridate.verbose
選項TRUE
和options(lubridate.verbose = TRUE)
.
也可以看看
parse_date_time()
用於更靈活的低級機製。
例子
x <- c("09-01-01", "09-01-02", "09-01-03")
ymd(x)
#> [1] "2009-01-01" "2009-01-02" "2009-01-03"
x <- c("2009-01-01", "2009-01-02", "2009-01-03")
ymd(x)
#> [1] "2009-01-01" "2009-01-02" "2009-01-03"
ymd(090101, 90102)
#> [1] "2009-01-01" "2009-01-02"
now() > ymd(20090101)
#> [1] TRUE
## TRUE
dmy(010210)
#> [1] "2010-02-01"
mdy(010210)
#> [1] "2010-01-02"
yq('2014.2')
#> [1] "2014-04-01"
## heterogeneous formats in a single vector:
x <- c(20090101, "2009-01-02", "2009 01 03", "2009-1-4",
"2009-1, 5", "Created on 2009 1 6", "200901 !!! 07")
ymd(x)
#> [1] "2009-01-01" "2009-01-02" "2009-01-03" "2009-01-04" "2009-01-05"
#> [6] "2009-01-06" "2009-01-07"
## What lubridate might not handle:
## Extremely weird cases when one of the separators is "" and some of the
## formats are not in double digits might not be parsed correctly:
if (FALSE) ymd("201002-01", "201002-1", "20102-1")
dmy("0312-2010", "312-2010")
#> Warning: 1 failed to parse.
#> [1] "2010-12-03" NA
相關用法
- R lubridate ymd_hms 解析包含年、月、日、小時、分鍾和秒組成部分的日期時間。
- R lubridate year 獲取/設置日期時間的年份部分
- R lubridate DateTimeUpdate 更改日期對象的組成部分
- R lubridate stamp 基於人性化模板設置日期和時間格式
- R lubridate interval 用於創建和操作 Interval 對象的實用程序
- R lubridate is.difftime x 是 difftime 對象嗎?
- R lubridate as_date 將對象轉換為日期或日期時間
- R lubridate date 獲取/設置日期時間的日期部分
- R lubridate round_date 日期時間對象的舍入、取整和取整方法
- R lubridate make_difftime 創建一個 difftime 對象。
- R lubridate is.timespan x 是時間長度嗎?
- R lubridate with_tz 獲取不同時區的日期時間
- R lubridate mplus 在日期中添加和減去月份,但不超過新月份的最後一天
- R lubridate cyclic_encoding 日期時間的循環編碼
- R lubridate as.interval 將對象更改為間隔
- R lubridate second 獲取/設置日期時間的秒部分
- R lubridate quarter 獲取日期時間的財政季度和學期
- R lubridate posix_utils 各種 POSIX 實用程序
- R lubridate date_decimal 將小數轉換為日期
- R lubridate as.duration 將對象更改為持續時間
- R lubridate hour 獲取/設置日期時間的小時部分
- R lubridate minute 獲取/設置日期時間的分鍾部分
- R lubridate month 獲取/設置日期時間的月份部分
- R lubridate duration 創建一個持續時間對象。
- R lubridate leap_year 一年是閏年嗎?
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Parse dates with year, month, and day components。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。