日期和时间
date,time
date()
sys.date()
as.date(年-月-日)
weekday()
months()
quarters()
julian()
posixct()
posixlT()
strptime()
1
2-8日期与时间
日期与时间(date,time)
日期:Date
x<-date()(获取当前系统的时间)
x2<-Sys.Date()(获取R中date日期类型的数据)
x3<-as.Date("2021-09-18")(如何把任意一个日期存储为Date这种类型)
weekdays(x3)(日期为星期几)
months(x3)(日期是几月)
quarters(x3)(日期为一年中哪个季度)
julian(x3)(日期距离1970-01-01有多少天)
x4<-as.Date("2016-01-01")
x4-x3(两个日期的时间差) as.numeric(x4-x3)
时间:POSIXct/POSIXlt
POSIXct:整数,常用于存入数据框
POSIXlt:列表,还包含星期、年、月、日等信息
x<-Sys.time()(获取当前系统的时间)
p<-as.POSIXlt(x)(类型之间的转换)
names(unclass(p))(lt的类型中存了哪些变量,使用unclass,把内容留下 把属性去掉)
p$sec(看一下有多少秒 秒是变量之一)
如何把以不同格式表示的字符串转换成我们想要的类型:
例:x1<-"Jan 1, 2015 01:01"
strptime(x1,"%B %d %Y %H:%M")
> strptime(x1,"%B %d, %Y %H:%M")
[1] NA
为什么得到的是缺失值?
日期和时间
x <- date() #获取当前本机时间
x2 <- sys.date() #获取当前本机时间的年月日
x3 <- as.Date("2015-01-01") #定义Date型日期
时间:POSIXct/POSIXlt
x <- Sys.time() #获得本机时间 class(x) —"POSIXct" "POSIXt"
p <- as.POSIXlt(x) 转换类型 class(p) —“POSIXlt”“POSIXt”
names(unclass(p)) #查看p中存在哪些变量
p$sec #获得秒
as.POSIXct(p) #将时间类型转化为POSIXct
weekday(x3)#返回日期具体对应的周几
months(x3) #返回日期对应的月份
quarters(x3) #返回日期对应的季度
julian(x3) #返回日期距离'1970-01-01'的天数
as.numerci(x4 -x3) #返回两个日期的相差的天数
striptime(待转化的日期,"%B %d, %Y %H:%M") #时间标准化输出
上述格式应当与带转化日期相对应
如何把不同类型的字符串转换成想要的类型
strptime()----用于想要转换为想要的日期格式
names(unclass(p)) ----获取到时间内部各个值的名称
p$sec ----获取p的秒数
时间:POSIXct/POSIXlt
x<-Sys.time()
“2019-12-23 11:12:45 CST”-------------CST是时区
as.POSIXlt(x)----------可以用于转换时间的类型
时间:POSIXct/POSIXlt
x<-date() --------获取系统当前日期信息---字符类型
x2<- Sys.Date()---------获取当前日期,date类型
x3<- as.Date("2019-01-01")---------赋值想要的日期---date类型
weekdays(x3)------------获取被赋值的日期的是哪个星期
month(x3)----------------获取被赋值的日期的是哪个月份
quarters(x3)--------------获取被赋值的日期的是哪个季度
x4<-as.Date("2018-01-01")
x3-x4
Time difference of 365 days
sa.numeric(x3-x4)
365
日期和时间(data,time)
x<-Sys.time() 获取系统时间,CST是时区
用as.POSIXlt(x)来更改POSIXct变成lt
用names(unclass())来查看POSIXlt中含有哪些变量
用unclass来把内容留下把属性去掉,用names来获取名称
x$sec 来获取秒
用as.Date(”2015-01-01“)将特定格式的字符串转为日期
若为非固定格式“jan 1,2015 01:01”则用strptime(,)两个变量,一个是存储了日期内容的变量,另一个是描述这个字符串是如何存储时间的(x1,”%B %d,%Y %H:%M")
从而得到“2015-01-01 01:01:00 CST”
一、date 日期结构
①x<-date()获取系统时间
class(x)
“character”以字符型储存时间
x2<-Sys.Date()
class(x2)
“Date”
②存储 x3<-as.Date(“2015-01-01”) (格式为年月日存储,月,日需要用两位数)
class(x3)
“Date”
③weekdays(x3)→“Thursday“
months()
quarters()→”Q1“
julian()→距离1970年1月1日过去了多少天
④日期与日期之间进行运算
x4-x3
TIime difference of 365 days
as.numeric(x4-x3)
【1】365
二、时间结构(POSIXct/ POSIXlt)
获取日期类型的数据用Sys.Date(),查看日期的详细信息用weekdays(),季度quarters(),months(),强制转换为日期类型用as.Date(),还可以对日期进行运算
时间有两种类型:1)POSIXct:整数,常用于存入数据框;2)POSIXlt:列表,还包含星期、年月日等信息
date()函数得到的是字符型日期;
Sys.Date()得到的是Date型日期;
用as.Date("xxxx-xx-xx")转换为Date型日期;
weekdays()函数可以得到星期信息;
months()函数得到月份信息;
quarters()函数得到季度信息;
julian()函数得到当前时间距离"1970-01-01"的天数;
Date型可以进行运算;
POSIXct:整数,常用于存入数据框;
POSIXlt:列表,还包含星期、年、月、日等信息;
用Sys.time()函数得到时间信息;
用$符号获得对应名称下的内容;
用strptime(x,描述)函数将任意类型的字符串转化为时间,其中%B表示月份,%d表示日,%Y表示年,%H表示小时,%M表示分钟;
数据结构-日期与时间
Sys.data()获取的时间格式为Data
data()获取的时间格式为字符
weekdays(data)判断日期是星期几
months(data)判断月份是几月
quarters(data)判断是这一年的第几个季度
julian(data)返回距离1970-01-01过去了多少天
日期时间的存储
x<-date()
x<-Sys.Date()
x1<-as.Date("2017-11-25")
x2<-as.Date("2019-01-01")
weekdays(x2)
months(x2)
quarters(x2)
julian(x2) 到1970-01-01有多少天。
x2-x1
as.numeric(x2-x1) 转换为纯数字。
x<-Sys.time()
p<-as.POSIXlt(x)
names(unclass(p)) 属性名称一览
p$sec 具体属性对应的值
as.POSIXct(p)
把其他格式的日期转换为r语言。
x1<-"Jan 1, 2015, 01:01"
strptime(x1, "%B %d, %Y, %H:%M")
R数据结构
8.日期(date):距离1970-01-01的天数
常用日期函数:date()/Sys.Date()/weekdays()/months/quarters()
> x <- date() > x [1] "Tue Nov 13 16:29:11 2018" > class(x) [1] "character" > x2 <- Sys.Date() > x2 [1] "2018-11-13" > class(x2) [1] "Date"
> x3 <- as.Date("2019-01-01") #获取Date对象,格式: year-month-day > x3 [1] "2019-01-01" > class(x3) [1] "Date" > weekdays(x3) #获取日期的星期 [1] "星期二" > months(x3) [1] "一月" > quarters(x3) #获取日期所在的季度 [1] "Q1" > julian(x3) #获取指定日期距离1970年1月1日的天数 [1] 17897 attr(,"origin") [1] "1970-01-01"
> x4 <- as.Date("2020-08-20") > x4-x3 #计算两个日期相差天数 Time difference of 597 days > as.numeric(x4-x3) #只获取天数,剔除文字 [1] 597
9.时间(time):距离1970年1月1日的秒数
函数:Sys.time()(获取当前系统时间)
POSIXct:整数,常用于存入数据框;POSIXlt:列表,还包含星期、年月日等信息
> x <- Sys.time() > x [1] "2018-11-13 16:43:30 CST" > class(x) [1] "POSIXct" "POSIXt" > p <- as.POSIXlt(x) #类型转换为POSIXlt > p[1] "2018-11-13 16:43:30 CST" > class(p) [1] "POSIXlt" "POSIXt" > names(unclass(p)) #查看存储了哪些变量 [1] "sec" "min" "hour" "mday" "mon" "year" "wday" [8] "yday" "isdst" "zone" "gmtoff" > p$sec #获取某个变量的值 [1] 30.6498 > as.POSIXct(p) #转换类型
julian:过去多少天
POSIXct/POSIXlt
sriptime(x1, %B月份 $d天, %Y年 %H小时: %M分)
date()#日期函数
Sys.Date()#日期函数 as.Date()#把任意的时间类型转换为date类型 x3<-as.Date("2018-10-07") weekdays(x3) months(x3) quarters(x3) julian(x3)#与1970-01-01这一天的天数差 x4<-as.Date("1937-07-07") x3-x4#求两个时间的时间差 as.numeric(x3-x4)#将“Time difference of 29677 days”强制转换为数字“29677”
date()函数 返回当前星期 月 日 时间 年份,class(x)类型为character
Sys.Date(), 返回年月日,class(x2)类型为date
存储为date类型: as.Date(“2018-09-12”)函数, class(x3)类型为date
weekdays(x3),输出当前x3是星期几
month(x3),输出x3是几月
quarters(x3),输出x3是第几季度
julian(x3),距离1970-1-1日过去了多少天。
x4<-as.date("2019-01-01")
x4-x3 得到时间差
强制转化成num类型:as.numeric(x4-x3)
时间类型: POSIXct:存储整数,用于存入data.frame
POSIXlt: 列表list,包含星期,年月日等
x<-Sys.time(),获取当前系统时间,class()类型是POSIXct,
p<-as.POSIXlt(x),强制转成POSIXlt
names(unclass(p))查看lt类型里存储了哪些变量:
[1] "sec" "min" "hour" "mday" "mon" "year"
[7] "wday" "yday" "isdst" "zone" "gmtoff"
p$sec 得到当前的秒数
as.POSIXct(p), 转化回去
x1<-"Jan 1,2015 01:01"
strptime(x1, "%B %d, %Y %H%M")
B表示月份,d表示日期,Y年份,H小时,M分钟
日期与时间:
-日期:Date,是距离19700101的天数
获取当前系统的时间:date() #是字符型
获得日期类型的数据:Sys.Date() #是Date类型
将字符串转变为Date类型:as.Date("yyyy-mm-dd")
获取星期:weekdays(Date类型变量名字)
获取月份:months(Date类型变量名字)
获取季度:quarters(Date类型变量名字)
获取距离1970-01-01的天数:julian(Date类型变量名字)
Date类型之间可以进行运算,相减就是相差的天数,通过as.numeric()来转变为数值类型
-时间:POSIXct/POSIXlt,是距离19700101的秒数
POSIXct:整数,常用于存入数据框
POSIXlt:列表,还包含星期、年、月、日等信息
获取当前系统时间:Sys.time() #是POSIXct类型
通过names(unclass(POSIXlt类型变量名))获取存储的信息。
通过"POSIXlt类型变量名$信息"获得,比如p$sec
时间的模式存储strptime ()
通过as.来进行变量类型转换
注:strptime()运行是NA,是因为安装了中文版本,所以把Jan改成一月就完美解决了。
日期与时间:
-日期:Date,是距离19700101的天数
获取当前系统的时间:date() #是字符型
获得日期类型的数据:Sys.Date() #是Date类型
将字符串转变为Date类型:as.Date("yyyy-mm-dd")
获取星期:weekdays(Date类型变量名字)
获取月份:months(Date类型变量名字)
获取季度:quarters(Date类型变量名字)
获取距离1970-01-01的天数:julian(Date类型变量名字)
Date类型之间可以进行运算,相减就是相差的天数,通过as.numeric()来转变为数值类型
-时间:POSIXct/POSIXlt,是距离19700101的秒数
POSIXct:整数,常用于存入数据框
POSIXlt:列表,还包含星期、年、月、日等信息
获取当前系统时间:Sys.time() #是POSIXct类型
通过names(unclass(POSIXlt类型变量名))获取存储的信息。
通过"POSIXlt类型变量名$信息"获得,比如p$sec
时间的模式存储strptime
通过as.来进行变量类型转换
x<- data() #显示当前时间
class(x)
日期表示要用“1988-09-08”