R语言学习笔记(10)-日期时间&常见错误
2021-01-22 本文已影响0人
Akuooo
参考视频:https://www.bilibili.com/video/BV19x411X7C6?p=26
一、时间序列分析
- 基本问题:
(1)对时间序列的描述;
(2)利用前面的结果进行预测; - 时间数据
每天的天气情况;购物网站每天交易量;每天交通数据;医院病历信息…… - R中内置时间数据
sunspots:1749-1983每月太阳黑子数
presidents:1945-1974 美国总统支持率(表格数据,时间序列ts)
airquality:纽约1973年5月-9月每天的空气质量情况(数据框)
airmiles:1937年至1960年,美国商业航空公司每年的收入乘客飞行里程。 - 相关函数与转化
(1)查看系统时间
> Sys.Date()
[1] "2021-01-22"
> class(Sys.Date())
[1] "Date"
(2)转换为date
> a <- "2021-01-01"
> as.Date(a, format = "%Y-%m-%d")
[1] "2021-01-01"
> class(as.Date(a, format = "%Y-%m-%d"))
[1] "Date"
更多格式化参数,可查看函数:
strftime()
中的介绍
(3)连续时间点
> seq(as.Date("2021-01-01"),as.Date("2021-01-22"),by = 5)
[1] "2021-01-01" "2021-01-06" "2021-01-11" "2021-01-16" "2021-01-21"
(4)生成时间序列:ts(),将向量转化为时间序列
> sales <- round(runif(48,min=50,max=100))
#runif生成随机数
> sales
[1] 75 58 72 66 96 66 58 99 99 61 80 73 70 78 82 97 91 83 68 59 85 81 93 67 88
[26] 76 83 73 83 73 84 83 71 64 58 90 73 96 100 53 73 81 73 96 84 52 75 51
#frequency=1代表以年为单位
> ts(sales,start = c(2010,5),end = c(2014,4),frequency = 1)
Time Series:
Start = 2014
End = 2017
Frequency = 1
[1] 75 58 72 66
> ?ts
> ts(sales,start = c(2010,5),end = c(2014,4),frequency = 4)
Qtr1 Qtr2 Qtr3 Qtr4
2011 75 58 72 66
2012 96 66 58 99
2013 99 61 80 73
2014 70 78 82 97
> ts(sales,start = c(2010,5),end = c(2014,4),frequency = 12)
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
2010 75 58 72 66 96 66 58 99
2011 99 61 80 73 70 78 82 97 91 83 68 59
2012 85 81 93 67 88 76 83 73 83 73 84 83
2013 71 64 58 90 73 96 100 53 73 81 73 96
2014 84 52 75 51
关于此处的起止的理解,参考该视频下的评论
ts理解.png
二、需要注意的错误
- 定义向量要加c
- 赋值符号为
<-
- 函数加括号(与普通对象进行区分)
- 字符串加引号
eg.安装R包时,install.packages("")也需要加引号 - 逗号分割集合中的元素,勿错位
索引时,取行或列也需要加逗号
eg.>state.x77[1,] - 一个等号是赋值操作符;
两个等号是比较是否相等。 - 路径差异:
Windows中,路径使用
R中,\为转义
故可以使用\或是/ - R扩展包
若显示错误,可能是未安装或是未载入 - 优先级问题(存在多个赋值比较操作时)
若不确定,可使用括号,因为括号优先级最大 - 大小写问题
Linux中严格区分大小写,R同样如此
eg.help和HELP是完全不同的命令
三、常见错误命令
- object xx not found
- as 'lib' is unspecified
- Error:unexpected
四、解决错误问题
可浏览一些网站进行搜索
如Google、Rblogger、quickR、Stack Overflow等
多实践!积累经验