使用表示数据框中日期的多个变量绘制时间序列图

Plotting a time series graph with multiple variables representing date in a data frame

我正在尝试绘制一个时间序列类型的图表,其中 x 轴为日期,y 轴为平均温度值。我正在使用的数据框有两个代表日期的独立变量:

year 包含整数值,例如 1941、1942 等。
month 是一个因子变量,有 12 个水平,包含 'January'、'February'...'December'

这是使用 dput 的数据集的剪辑,抱歉不知道如何格式化才能在此处查看。

structure(list(year = c(1941L, 1941L, 1942L, 1942L, 1942L), month = structure(c(11L, 
12L, 1L, 2L, 3L), .Label = c("January", "February", "March", 
"April", "May", "June", "July", "August", "September", "October", 
"November", "December"), class = "factor"), meant = c(6.9, 6.5, 
4.3, 2.9, 6.3)), row.names = c(NA, 5L), class = c("WeatherData", 
"data.frame"))

到目前为止,我已尝试将 yearmonth 转换为字符变量,将两个字符变量粘贴到单个字符变量 yrmonth,然后将此变量从字符类型转换为日期类型,以便 plot() 函数可以以正确的格式绘制日期。

# convert integer and factor variable to character variable
df$month <- as.character(df$month)
df$year <- as.character(df$year)

# for loop to paste two character variables to yrmonth
yrmonth <- vector(length = length(df$year))
for(i in 1:length(df$year)){
  yrmonth[i] <- (paste(df$month[i], df$year[i]))
}
df$yrmonth <- yrmonth

# convert yrmonth to date format
df$yrmonth  <- parse_date_time(yrmonth, orders = c('bdy', 'bY' ))

plot(df$yrmonth, df$meant, type = 'l')

因为 df$meant 是一个具有整数值的变量,我希望生成一个时间序列图。当我执行上面的代码时出现错误 error in plot.window(...) : Need finite 'xlim' values

任何人都可以建议我根据日期变量的特征生成图表吗?

假设你使用 lubridate 包,你可以更容易地构建日期:

df$date = paste(rep(15, nrow(df)), df$month, df$year, sep="/")
# check that date column contains valid dates as strings
df$date = dmy(df$date)
# check that dates have been converted correctly

为了获得有效日期,我将 日期 设置为每个月的 15 日。