您也可以通過parse_date_time
或fast_strptime
函數來實現此目的從lubridate
-package NS:
> parse_date_time(dates1, "ym")
[1] "2009-01-01 UTC" "2009-02-01 UTC" "2009-03-01 UTC"
> fast_strptime(dates1, "%Y-%m")
[1] "2009-01-01 UTC" "2009-02-01 UTC" "2009-03-01 UTC"
這兩個之間的區別在於,parse_date_time
允許lubridate風格的格式規範,而fast_strptime
需要相同的格式規範作爲strptime
。
用於指定時區,你可以使用tz
-parameter:
> parse_date_time(dates1, "ym", tz = "CET")
[1] "2009-01-01 CET" "2009-02-01 CET" "2009-03-01 CET"
當你在你的日期時間數據的不規則性,可以使用truncated
-parameter指定多少違規行爲被允許:
> parse_date_time(dates2, "ymdHMS", truncated = 3)
[1] "2012-06-01 12:23:00 UTC" "2012-06-01 12:00:00 UTC" "2012-06-01 00:00:00 UTC"
使用的數據
dates1 <- c("2009-01","2009-02","2009-03")
dates2 <- c("2012-06-01 12:23","2012-06-01 12",'2012-06-01")
日期還有其他什麼格式?我看到了POSIX和ISO的東西,但我不確定這些是不同的格式。我認爲這些只是功能,... – 2011-06-05 12:57:51
值得注意的是,你可以指定一天在格式化程序中相同,所以你可以做'as.Date(month,format ='%Y-%m-01') '並取得相同的結果。這種「感覺」比我更喜歡,因爲指定每個月的同一日期更多地是日期和字符串操作的格式,但也許這是無稽之談。 – JBecker 2013-05-24 16:57:56
@JBecker你的建議對我不起作用。 '> as.Date(「2016-01」,format =「%Y-%m-01」) #[1] NA'。 我正在使用R 3.3.1 – n8sty 2017-01-20 20:43:57