-
关于日期时间的算数运算
R支持POSIX类和Date类的日期和时间运算。
POSIX类时间和数值相加,以秒为单位增加。
Date类会以天为单位增加日期。
R支持日期或时间的减法运算。Difftime()函数也是减法运算,但功能更强大。
#转换日期格式 > mytime=strptime("2018-01-16 20:47:13",format="%Y-%m-%d %H:%M:%S",tz="");mytime [1] "2018-01-16 20:47:13 CST" > #加法运算,以秒为单位 > mytime+3600 #加一小时 [1] "2018-01-16 21:47:13 CST" > mytime+86400 #加一天 [1] "2018-01-17 20:47:13 CST" > st=as.Date("1949-10-01") > en=as.Date("2049-10-01") > en+1 [1] "2049-10-02" > all_days=en-st > all_days Time difference of 36525 days > class(all_days) [1] "difftime" > > all_days[[1]] [1] 36525 > > mydates=seq(st,by="day",length=25567) > head(mydates);tail(mydates) [1] "1949-10-01" "1949-10-02" "1949-10-03" "1949-10-04" "1949-10-05" "1949-10-06" [1] "2019-09-25" "2019-09-26" "2019-09-27" "2019-09-28" "2019-09-29" "2019-09-30" > mydates1=seq(st,en,by="day") > head(mydates1);tail(mydates1) [1] "1949-10-01" "1949-10-02" "1949-10-03" "1949-10-04" "1949-10-05" "1949-10-06" [1] "2049-09-26" "2049-09-27" "2049-09-28" "2049-09-29" "2049-09-30" "2049-10-01" > > #查看时间范围,range()函数 > range(mydates) [1] "1949-10-01" "2019-09-30" > difftime(en,st,units="weeks") Time difference of 5217.857 weeks > diffd=difftime(en,st);diffd Time difference of 36525 days > str(diffd) #查看diffd的结构 'difftime' num 36525 - attr(*, "units")= chr "days" > diffy=diffd/365.25; > diffy Time difference of 100 days > attr(diffy,"units")="years";diffy #转换diffy的单位,并显示 Time difference of 100 years > mean(mydates) #求平均值 [1] "1984-09-30" > summary(mydates) Min. 1st Qu. Median Mean 3rd Qu. Max. "1949-10-01" "1967-04-01" "1984-09-30" "1984-09-30" "2002-03-31" "2019-09-30"
-
‘了解了建立时间序列函数对象的三大工具包
常用的建立时间序列函数对象的三大工具包有zoo、xts、timeSeries
zoo包里的时间序列由数据和索引组成
xts包里的结构在zoo包的结构基础上进行了拓展,由数据、索引和属性组成
timeSeries包是一整套用于金融数据分析和计算金融的软件包
三种不同类型的时间序列对象之间可以通过as.PKG(as.zoo,as.xts,as.timeSeries)相互转换
-
数据读取
对于外部数据一般分为两种情况,一是CSV文件、txt文件、xls文件等一般格式文件;二是S-PLUS,SAS,SPSS,Stata等其他软件的专有格式。
常用读取外部数据的函数有:read.csv(),read.table(),read.delim(),read.xls(),scan(),read.xlsx()
等
-
数据存储和输出
存储为RData文件、csv文件或txt文件。使用save、write函数
save(capm_ret,file="ret.RData") write(x,"x.txt") write.table(newlongley,file="new_longley.txt") write.csv(longley,file="longley.csv",row.names=False)
R语言学习 day_6
于 2022-07-29 09:19:13 首次发布