- 基础命令
- 设置工作目录
setwd/getwd
usage:
getwd()
setwd()
- 帮助
help
usage:
help()
- 安装与加载程序包
安装:install.packages usage: install.packages("XX")
加载:library() usage: library("XX")
- 不同格式的数据获取
# .csv数据
- Method One
install.packages("readxl")
library(readr)
flood1 <- read_csv("C:/Users/Administrator/Desktop/data/flood.csv")
- Method Two
flood2<-read.table("C:/Users/Administrator/Desktop/data/flood.csv", sep=",", header=T)
- Method Three
flood3<-read.csv("C:/Users/Administrator/Desktop/data/flood.csv", sep=",", header=T)
# .xlsx数据
#install.packages("readxl")
library(readxl)
data<read_excel("C:/Users/Administrator/Desktop/data/exp1/A1_4.xlsx")
或
#install.packages("openxlsx")
library(openxlsx)
data<- read.xlsx("C:/Users/Administrator/Desktop/data/A1_4.xlsx")
# .txt数据
data<-read.table("C:/Users/Administrator/Desktop/data/cpi.txt",header=F)
*. sep
指定制表分隔符。
txt格式中:
sep=”\t”——以制表符分隔。
sep=”,”——以逗号分隔。
*. Header指定第一行是否包括变量名。
- plot函数
- 点线参数结构
在plot函数中,使用参数type来控制点线输出结构。
- 符号参数
在plot函数中,用pch选项(共25个)设置观察点的符号。
- 连线类型参数
在plot函数中,用lty选项设置线的类型。
- 线的宽度参数
在plot函数中,用lwd选项设置线的宽度。
- 颜色参数
在plot函数中,用col选项设置线的颜色,等号后可以是具体的颜色,但要用双
引号括起来,也可以是某个数值,直接等出。
- 添加文本
在plot函数中:
用main选项添加标题文本;
用sub选项添加副标题文本;
用xlab选项添加横坐标名称;
用ylab选项添加纵坐标名称。
- 制定坐标轴范围
在plot函数中,用xlim选项添加横坐标的范围,用ylim选项添加纵坐标的范围。
EG.
plot(A1_15,xlim=c(1917,1927))
- 添加参照线
绘图时,使用abline函数为图形添加参照线条。
参照线条可以是垂线,也可以是水平线,还可以是线性回归线。
EG.
- 保存命令过程
savehistory("XX")
- 生成时间序列数据
- 年度、季度、月度时间序列
输入命令:
name<-ts(data, start=,end=,frequency=)
EG.
时间 | CPI(上月=100) | 时间 | CPI(上月=100) |
2020年1月 | 101.4 | 2020年7月 | 100.6 |
2020年2月 | 100.8 | 2020年8月 | 100.4 |
2020年3月 | 98.8 | 2020年9月 | 100.2 |
2020年4月 | 99.1 | 2020年10月 | 99.7 |
2020年5月 | 99.2 | 2020年11月 | 99.4 |
2020年6月 | 99.9 | 2020年12月 | 100.7 |
- 行输入(以1-3月为例)
cpi<-c(101.4,100.8,98.8)
cpi<-ts(cpi,start=c(2020,1),frequency=12)
cpi
- 列输入(以7-12月为例)
cpi<-scan()
#输入上一条代码后,输入所需数据,以回车结束录入数据。
cpi2<-ts(cpi,start=c(2020,7),frequency=12)
cpi2
- 读入外部数据
cpi3<-read.table("cpi.txt")
cpi3
cpii<-ts(cpi3, start=c(2020,1),frequency=12)
cpii
- 以天为单位的时间序列
- 直接定义
EG.
t0<-ts(1:365,frequency=1,start=as.Date("2017-05-01"))
t0
s<-as.Date("2017-05-01")
date<-seq(from=s, by=1, length.out=365)
date
t<-data.frame(date, t0)
t
- 利用zoo包
EG.
t<-seq(as.Date("2017-05-01"),length=180,by="day")
z<-rnorm(180)*100
library(zoo)
xt<-zoo(z,t)
xt
- 以小时或分钟为单位的时间序列
使用strptime函数。
EG.
t<-strptime("2017-05-01 00:00:00","%Y-%m-%d %H:%M:%S")+900*1:10 #900:900秒
t
#这句代码的意思是设置成以15分钟为间隔的10个时间序列
z<-rnorm(10)*100
z
library(zoo)
xt<-zoo(z,t)
xt
- 用ts定义的时间序列数据的处理
EG. 使用在R中已安装的时间列示例数据:美国泛美航空公司1949-1960 的国际航班订票数的月度数据(单位:千人),共12年144个月。
data(AirPassengers)
AirPassengers
#start()求时间序列的开始点,end()求时间序列的结束点,frequency()求采样频率。
start(AirPassengers)
end(AirPassengers)
frequency(AirPassengers)
#aggregate()函数可以把月度数据加总成年度/季度数据。
airy<- aggregate (AirPassengers)
airy
airs<- aggregate (AirPassengers, nfrequency=4);
airs
airyw<-aggregate(airs, nfrequency = 1,FUN = weighted.mean, w = c(1, 1, 0.5, 1))
#window()函数取出时间序列的一段, 如果指定frequency=TRUE还可以仅取出某个月(季度)。
airw<-window(AirPassengers,start=c(1951,3),end=c(1959,8))
airw
airJan <- window(AirPassengers, start=c(1949,1), frequency=TRUE)
airJan
#log()进行序列的对数变换(默认底数为e)
lair<-log(AirPassengers)
lair
- 数据可视化
- 绘制时序图
EG. 北京地区从1949年到1964年的受灾面积与成灾面积(单位:万亩)数据。
#导入数据
flood<-read.csv("flood.csv",header=T)
flood
flarea1<-ts(flood$area1, start=1949, frequency=1)
flarea2<-ts(flood[,4], start=1949, frequency=1)
#默认格式输出
plot(flarea1,type="o")
#自定义图形参数(plot函数中):
#使用参数type设置点线输出结构。
#使用参数pch设置观察点的符号。
#使用参数lty设置线的类型。
#使用参数lwd设置线的宽度。
#使用参数col设置点线颜色。等号后面可以是具体的颜色,也可以是代表颜色的数值。
#添加文本。参数main添加标题,参数sub添加副标题,参数xlab指定横坐标名称,参数ylab指定纵坐标名称。
#参数xlim设置横坐标取值范围,参数ylim设置纵坐标取值范围。
#参数plot.type=“single”要求将全部图形画在同一张图中。
#其他辅助自定义函数:
#abline(v=,h=,lty=2)为图形添加参照线。可以是垂线、水平线、或线性回归线。
#par(mfrow=,mar=,mgp=)设置图形排列和边距等
#on.exit()调用自定义的par()
用于指定在当前函数退出时需要执行的表达式,无论函数时正常结束还是因错误终止,已注册的退出处理程序都会执行。
#legend()设置图例样式
*.通过par( )函数对图形参数进行设置后,当需要还原为系统默认设置时有两种方式可实现:
- 在调用par()函数设置图形参数之前先保存系统当前的环境,待需要还原时执行par(op)还原即可:
op <-par(no.readonly=TURE) ##保存
… ##执行其他命令
par(op) ##还原
- 直接关闭图形对话框,下次重新打开时即为默认设置。
- 绘制散点图
EG.
dataset <- read.csv("消费收入.csv",header=F)
xiaofei=dataset[,6]
shouru=dataset[,7]
plot(xiaofei,shouru,ylab ='收入',xlab='消费')
- 绘制密度图
绘制密度图采用两步:
- 绘制直方图。
- 在途中添加概率密度曲线。
EG.
hist(return,freq = FALSE,xlab = '上证指数回报率',ylab='密度',ylim=c(0,45),xlim=c(-0.1,0.1),main='')
lines(density(return), col = "red")
- 绘制季节图和极坐标图
- 季节图
- feasts包 *.feasts包要求将时间序列数据定义为tsibble格式。
EG.
library(tsibble)
library(feasts)
pa2_tsbl<-as_tsibble(pa2)
gg_season(pa2_tsbl,labels="both")
gg_subseries(pa2_tsbl)
- forecast包 *. forecast包只需要将时间序列数据定义为ts格式。
EG.
library(forecast)
ggseasonplot(pa2,season.labels=NULL,year.labels=TRUE, year.labels.left = TRUE, main='', ylab="航空旅客量/万人", xlab="月份")
ggseasonplot(pa2, polar=TRUE, main='', ylab="航空旅客量/万人", xlab="月份")
- 极坐标图
forecast包
- 白噪声模拟
- 模拟的Poisson白噪声
EG.
set.seed(1) #设置随机数种子
x <- rpois(100, 1) #生成100个参数为1的分布为采用泊松分布的元素
plot(x, type="h", xlab="time", ylab="", main="Poisson White Noise")
- 模拟的标准正态白噪声
EG.
set.seed(1)
x <- rnorm(100)
plot(x, type="l", xlab="time", ylab="", main="Gaussian White Noise")
- 模拟的随机相位白噪声
EG.
set.seed(1)
x <- cos(2*pi/12*(1:100) + runif(100, 0, 2*pi))
plot(x, type="l", xlab="time", ylab="", main="Random Phase White Noise")
- 绘制自相关图和偏相关图
- 自相关图
输入命令:
acf(x, lag.max=) #x为变量名;lag.max为延迟阶数
acf(x,plot=FALSE) #只计算,不绘制图形。
acf(x)$acf[1:6] #绘制图形,同时给出数值
#$:用于提取指定数值。
- 偏相关图
输入命令:
pacf(x,lag.max=) #x:变量名;lag:延迟阶数
pacf(x)$acf[1:8] #绘制图形,同时给出数值。
- 纯随机性(白噪声)检验
输入命令:
Box.test(x,lag=1,type=c("Box-Pierce", "Ljung-Box"))
EG.
library(readxl)
A1_7<- read_excel("A1_7.xlsx")
number<-ts(A1_7$number,start=1900)
number
Box.test(number,lag=6,type="Ljung-Box")
for(k in 1:2) print(Box.test(number,lag=6*k,type="Ljung-Box"))
#tout=matrix(ncol=3)(nocl:指定列数)
tout=NULL #tout用于存储检验结果的变量
for(k in c(3,6,9))
t<- Box.test(number,lag=k,type="Ljung")
st1<-t$statistic
st2<-t$p.value
tout<-rbind(tout,c(k,st1,st2)) #按行合并是数据