我正在尝试推断x轴上包含日期的数据。
我有以下最低工作示例:
df0 <- c('1-Feb', '10-Feb', '12-Apr', '20-Feb')
df1 <- c(10, 20, 35, 25)
df2 <- cbind.data.frame(df0, df1)
names(df2) <- c('date','value')
df2$date <- as.Date(df3$date, format = "%d-%b")
library(ggplot2)
ggplot(df2,aes(x=date, y =value)) +
geom_point() +
scale_x_date(date_labels = "%d-%b")
我如何推断'df2'以获取5月份的数据,同时保持情节相同?
我使用过spline()
,但是使用后我无法找回日期。有人有合适的想法吗?
答案 0 :(得分:0)
编辑:公式编辑
因此,您想根据目前的值预测5月的值吗?
这是使用线性回归的一种方法。
library(tidyverse)
library(lubridate)
df0 <- c('1-Feb', '10-Feb', '12-Apr', '20-Feb')
df1 <- c(10, 20, 35, 25)
df2 <- cbind.data.frame(df0, df1)
names(df2) <- c('date','value')
df2 <- df2 %>%
mutate(date = as.Date(date, format = "%d-%b"),
date = ymd(date)) %>%
as_tibble()
ggplot(df2,aes(x=date, y =value)) +
geom_point() +
scale_x_date(date_labels = "%d-%b")
#make your linear regression model
model <- lm(value ~ date,data=df2)
#predict values for new dates in May
new_dates <- tibble(date=ymd(c('2019-05-01','2019-05-30')))
pred_vals <- predict(model,new_dates)
future_vals <- tibble(date = new_dates$date,
value = pred_vals)
#combine predicted values with observed
df3 <- bind_rows(df2,future_vals)
#chart the new combination
ggplot(df3,aes(x=date, y =value)) +
geom_point() +
scale_x_date(date_labels = "%d-%b")