-
Notifications
You must be signed in to change notification settings - Fork 18
/
Copy pathwrangling-objects.qmd
executable file
·103 lines (67 loc) · 2.38 KB
/
wrangling-objects.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# 数据对象 {#sec-data-objects}
数据类型有整型(32 位或 64 位)、逻辑型、字符型、日期型、数值型(单、双精度浮点型)等。数据结构有向量、矩阵、数组、列表和数据框等。
## 数据类型 {#sec-data-type}
### 整型 {#sec-integer}
```{r}
c(1L, 2L)
```
### 逻辑型 {#sec-logical}
```{r}
c(TRUE, FALSE)
```
### 字符型 {#sec-character}
```{r}
c("A", "B")
```
### 日期型 {#sec-date}
```{r}
c(as.Date("2022-01-01"), as.Date("2022-01-02"))
```
### 数值型 {#sec-numeric}
```{r}
c(1,1.2)
```
## 数据结构 {#sec-data-structure}
### 向量 {#sec-vector}
所有元素都是同一类型
### 矩阵 {#sec-matrix}
所有元素都是同一类型
### 数组 {#sec-array}
所有元素都是同一类型
### 列表 {#sec-list}
元素可以属于不同类型
### 因子 {#sec-factor}
### 数据框 {#sec-data-frame}
同列的元素类型必须一致,不同列的元素类型可以不同。
### ts {#sec-ts}
`ts` 类型用于表示时间序列数据,是继承自数组类型的。给定数据、采样初始时间、采样频率的情况下,利用内置的函数 `ts()` 构造一个 `ts` 类型的分钟级的时间序列对象。
```{r}
x <- ts(
data = rnorm(100),
start = c(2017, 1),
frequency = 365.25 * 24 * 60,
class = "ts", names = "Time_Series"
)
```
`ts()` 函数的 `start` 和 `frequency` 参数很关键,前者指定了时间单位是天,后者指定每个时间单位下的数据点的数量。其中 365.25 是因为每隔 4 年有 366 天,平均下来,每年算 365.25 天。每隔 `1 / (24 * 60)` 天(即 1 分钟)采样一个点。如果初始时间不是从一年的第1分钟开始,而是从此时此刻 `2023-01-31 10:43:30 CST` 开始,则可以换算成今年的第 `30 * 24 * 60 + 9 * 60 + 43 = 43783` 分钟,则 `Start = c(2023, 43783)`。
以数据集 x 为例,它是一个 ts 类型的时间序列数据对象。时间序列对象有很多方法,如函数 `class()` 、 `mode()` 和 `str()` 分别可以查看其数据类型、存储类型和数据结构。
```{r}
# 数据类型
class(x)
# 存储类型
mode(x)
# 数据结构
str(x)
```
函数 `start()` 和 `end()` 查看开始和结束的时间点。
```{r}
c(start(x), end(x))
```
函数 `time()` 可以查看在以上时间区间的划分。
```{r}
time(x)
```
函数 `tsp()` 可以查看其期初、期末和周期。
```{r}
tsp(x)
```