有没有办法用R中的日期推断数据框?

时间:2019-04-11 10:00:00

标签: r ggplot2

我正在尝试推断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(),但是使用后我无法找回日期。有人有合适的想法吗?

1 个答案:

答案 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")