在 R 中准备时间序列数据
Preparing time series data in R
我有一个以 .txt 格式保存的降雨数据文件
Year 1, 2, 3, 4, ................365, 366
1981 1.0, 0.0, 0.0, 0.0, ................1.2, 0.0
1982 0.8, 0.0, 4.5, 2.3,.................0.9, 2.1
.
.
.
.
2015 0.0, 2.3, 8.7, 2.3, .................0.0, 0.0
此处第一列包含年份,第二列包含一年中的降雨天数。
现在我想在 R 中进行降水分析。如何从该数据结构准备时间序列数据以在 R 中执行时间序列分析?
非常感谢您提前的支持。
我使用这个 dummy
数据。
dummy <- tibble::tribble(
~year, ~"1", ~"2", ~"3",
"2016", 1.25, 0.25, 0.25,
"2017", 1.20, 0.20, 0.20,
"2018", 1.30, 0.30, 0.30,
"2019", 1.18, 0.18, 0.18,
)
year `1` `2` `3`
<chr> <dbl> <dbl> <dbl>
1 2016 1.25 0.25 0.25
2 2017 1.2 0.2 0.2
3 2018 1.3 0.3 0.3
4 2019 1.18 0.18 0.18
然后
melt(dummy) %>% mutate(variable = as.numeric(variable)) %>%
mutate(date = as.Date(variable-1, origin = paste0(year, "-01-01"))) %>%
select(date, value) %>% arrange(date)
成为
date value
1 2016-01-01 1.25
2 2016-01-02 0.25
3 2016-01-03 0.25
4 2017-01-01 1.20
5 2017-01-02 0.20
6 2017-01-03 0.20
7 2018-01-01 1.30
8 2018-01-02 0.30
9 2018-01-03 0.30
10 2019-01-01 1.18
11 2019-01-02 0.18
12 2019-01-03 0.18
#数据的附加代码
dummy <- read.table("D:/Rainfall.txt", header = TRUE)
colnames(dummy) <- as.character(c("Year",1:366))
melt(dummy, id.var="Year") %>%
mutate(variable = as.numeric(variable), value = as.numeric(str_replace(value, ",", ""))) %>%
mutate(date = as.Date(variable-1, origin = paste0(Year, "-01-01"))) %>%
select(date, value) %>% arrange(date)
head
结果就像
date value
1 1981-01-01 1.0
2 1981-01-02 0.0
3 1981-01-03 0.0
4 1981-01-04 0.0
5 1981-01-05 0.0
6 1981-01-06 0.9
我有一个以 .txt 格式保存的降雨数据文件
Year 1, 2, 3, 4, ................365, 366
1981 1.0, 0.0, 0.0, 0.0, ................1.2, 0.0
1982 0.8, 0.0, 4.5, 2.3,.................0.9, 2.1
.
.
.
.
2015 0.0, 2.3, 8.7, 2.3, .................0.0, 0.0
此处第一列包含年份,第二列包含一年中的降雨天数。
现在我想在 R 中进行降水分析。如何从该数据结构准备时间序列数据以在 R 中执行时间序列分析?
非常感谢您提前的支持。
我使用这个 dummy
数据。
dummy <- tibble::tribble(
~year, ~"1", ~"2", ~"3",
"2016", 1.25, 0.25, 0.25,
"2017", 1.20, 0.20, 0.20,
"2018", 1.30, 0.30, 0.30,
"2019", 1.18, 0.18, 0.18,
)
year `1` `2` `3`
<chr> <dbl> <dbl> <dbl>
1 2016 1.25 0.25 0.25
2 2017 1.2 0.2 0.2
3 2018 1.3 0.3 0.3
4 2019 1.18 0.18 0.18
然后
melt(dummy) %>% mutate(variable = as.numeric(variable)) %>%
mutate(date = as.Date(variable-1, origin = paste0(year, "-01-01"))) %>%
select(date, value) %>% arrange(date)
成为
date value
1 2016-01-01 1.25
2 2016-01-02 0.25
3 2016-01-03 0.25
4 2017-01-01 1.20
5 2017-01-02 0.20
6 2017-01-03 0.20
7 2018-01-01 1.30
8 2018-01-02 0.30
9 2018-01-03 0.30
10 2019-01-01 1.18
11 2019-01-02 0.18
12 2019-01-03 0.18
#数据的附加代码
dummy <- read.table("D:/Rainfall.txt", header = TRUE)
colnames(dummy) <- as.character(c("Year",1:366))
melt(dummy, id.var="Year") %>%
mutate(variable = as.numeric(variable), value = as.numeric(str_replace(value, ",", ""))) %>%
mutate(date = as.Date(variable-1, origin = paste0(Year, "-01-01"))) %>%
select(date, value) %>% arrange(date)
head
结果就像
date value
1 1981-01-01 1.0
2 1981-01-02 0.0
3 1981-01-03 0.0
4 1981-01-04 0.0
5 1981-01-05 0.0
6 1981-01-06 0.9