2020-05-22 R语言中的as.Date函数
2020-05-22 本文已影响0人
王子威PtaYoth
as.Date()函数概括起来就是将字符串转换为规范的Date对象
## locale-specific version of the date
format(Sys.Date(), "%a %b %d")
Sys.Date()是一个"Date"对象,而非字符串对象,输出:
"2020-05-22"
format函数将对象以指定格式输出,有点像python中占位符的概念
format(Sys.Date(), "%a %b %d") 输出:
"Fri May 22"
%a 星期的缩写
%A 星期的全称
%b 输出月份的缩写
%B 输出月份的全称
%c 输出完整的时间 "Fri May 22 00:00:00 2020"
%C 输出年份的前两位
%y 输出年份的后两位
%d 输出日
%D 输出"05/22/20"
# 获取系统区域
lct <- Sys.getlocale("LC_TIME")
lct # 输出 "Chinese (Simplified)_China.936"
x <- c("1jan1960", "2jan1960", "31mar1960", "30jul1960")
z <- as.Date(x, "%d%b%Y")
z #输出NA NA NA NA
# 将区域设置为C
Sys.setlocale("LC_TIME", "C")
x <- c("1jan1960", "2jan1960", "31mar1960", "30jul1960")
z <- as.Date(x, "%d%b%Y")
z #输出"1960-01-01" "1960-01-02" "1960-03-31" "1960-07-30"
# 恢复区域设置
Sys.setlocale("LC_TIME", lct)
%Y 输出完整的年份
%y 输出年份的后两位,比如2020年输出"20"
## read in date/time info in format 'm/d/y'
dates <- c("02/27/92", "02/27/92", "01/14/92", "02/28/92", "02/01/92")
as.Date(dates, "%m/%d/%y")
as.Date函数将dates格式化为Date对象
%m/%d/%y告诉as.Date函数输入日期的格式
%m 数字月份 01-12
%d 数字日期 01-31
%y 数字年份后两位 01-99
## date given as number of days since 1900-01-01 (a date in 1989)
## 指定起始日期和天数
as.Date(1, origin = "1900-01-01") #输出"1900-01-02"
## 时区的作用
## Time zone effect
z <- ISOdate(2010, 04, 13, c(0,12)) # midnight and midday UTC
as.Date(z) # in UTC
## these time zone names are common
as.Date(z, tz = "NZ")
as.Date(z, tz = "HST") # Hawaii