我使用这个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