将字符转换为日期 (R)

Convert Character into Date (R)

这里我有一个 chr 列 data$month,最初是这样的“1980m10”。 我正在尝试将其转换为日期格式,以便绘制股票 returns 的折线图。 然而当我尝试

as.Date(data$month, "%Ym%m") 

它 returns 我只有 NA 值。

我已尝试将列转换为更清晰的格式

data$year = substr(data$month,1,4)
data$mon = substr(data$month,6,8)

library(stringr)

data$month = paste(data$year,'-',data$mon)

as.Date(data$month, "%y - %m")

然而它仍然 returns 我只有 NA 值。不知道如何解决这个问题。 我试过没有格式: 但它说字符串不是标准的明确格式

您可以尝试为日期添加一个默认日期,例如01,正式约会:

data$year <- substr(data$month, 1, 4)
data$mon <- substr(data$month, 6, 8)
data$date <- as.Date(paste(data$year, data$mon, "01", sep="-"))

查看包含 str_sub 函数的包 ?stringr

R> str_sub(data$month,1,4) 
[1] "1980"

另一个潜在的包是 ?substr 包。看看两者。由于您的格式不明确,我建议使用一个只接受前 4 个字符的函数。