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
上一篇下一篇

猜你喜欢

热点阅读