数值到日期的转换以及与其他数据框的匹配
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)
我在将数据框 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)