将数字转换为日期并与其他数据框匹配

时间:2018-04-24 15:32:20

标签: r dataframe lubridate

我面临将数据框的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

2 个答案:

答案 0 :(得分:1)

您可以使用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)

答案 1 :(得分:0)

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

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