在 R 中制作 2 位数的月份和日期列

making 2 digit month and day columns in R

我是 R 的新手,所以这看起来很简单。但是我有一个带有原始日期列的数据框,其值如下所示:4-02-91、5-29-93(即 m-d-y)。我试图将此列分成 3 列,其中月、日和年是分开的。然后我需要将它们再次组合成这种格式 19910402、19930529 - 我需要这种方式以便将它与具有相似日期的另一个数据集进行比较。

这是我一直在尝试做的事情:

# Make DATE an actual date column    
dataframe$DATE <- as.Date(used$DATE, format="%m-%d-%Y")
# This changes the original date column into something that looks like this: 1991-04-02, 1993-05-29

# Separate DATE into multiple columns  
dataframe$year <- year(dataframe$DATE)
dataframe$month <- month(dataframe$DATE)
dataframe$day <- day(dataframe$DATE)

# Combine dates again to get string
dataframe$raster_date<-paste(dataframe$year, dataframe$month, dataframe$day, sep = "")

除了月份或日期是个位数的地方,最后一步看起来不错。它以 199142 和 1993529 的形式出现,而不是 19910402 和 19930529。当月份和日期的值为 1 位时,如何插入零?

在这里,我们可以使用 sprintf 而不是 paste,因为 yearmonthdaylubridate 中提取了那些作为数值和数字 class 会删除作为前缀填充的 0。我们在 sprintf

中添加带有 0 的前缀
sprintf("%04d%02d%02d", dataframe$year, dataframe$month, dataframe$day)