数值到日期的转换以及与其他数据框的匹配

Conversion of Numeric to Date and Matching with other Data Frame

我在将数据框 Date 转换为日期格式时遇到问题。我也尝试过使用这个 DF$Date <- as.Date(DF$Date, "%Y%M") 但出现错误。谁能帮我解决这个问题。

DF
        Date    Price   Stock       
    1   201102  339.32  AAPL
    2   201103  353.21  AAPL
    3   201104  348.45  AAPL
    4   201105  348.23  AAPL
    5   201106  347.83  AAPL
    6   201107  335.67  AAPL
    7   201108  390.48  AAPL
    8   201109  384.83  AAPL

如果每个日期对应于特定月份的第一天,您可以使用:

DF$Date <- lubridate::ymd(paste0(DF$Date, "01"))

您可以使用 zoo::as.yearmon:

library(zoo);
df %>%
    mutate(Date = as.yearmon(as.character(Date), "%Y%m"))
#      Date  Price Stock
#1 Feb 2011 339.32  AAPL
#2 Mar 2011 353.21  AAPL
#3 Apr 2011 348.45  AAPL
#4 May 2011 348.23  AAPL
#5 Jun 2011 347.83  AAPL
#6 Jul 2011 335.67  AAPL
#7 Aug 2011 390.48  AAPL
#8 Sep 2011 384.83  AAPL

示例数据

df <- read.table(text =
    "        Date    Price   Stock
    1   201102  339.32  AAPL
    2   201103  353.21  AAPL
    3   201104  348.45  AAPL
    4   201105  348.23  AAPL
    5   201106  347.83  AAPL
    6   201107  335.67  AAPL
    7   201108  390.48  AAPL
    8   201109  384.83  AAPL", header = T)