提取 "MM-DD-YYY" 变量后日和年格式不正确

Incorrect day and year format after extracting "MM-DD-YYY" variable

我正在尝试根据格式为“27-02-2012”或“DD-MM-YYYY”的“日期”变量的字符串值生成日、月和年变量。

#Loading packages
library(tidyverse)
library(readxl)
library(writexl)
library(stringr)
library(textclean)
library(lubridate)
#library(zoo)

我的变量存储如下:

sapply(data_corpus, class)
    post        date    username 
"character" "character" "character"

要为日、月和年提取和生成单独的变量,我 运行 这样做:

#Converting date variable
#data_corpus$date <- as_date(data_corpus$date)

但这会将我在“日期”变量中的所有值都变成 NA。所以我也尝试了运行这个,这对月来说效果很好。

#Creating day, month, year variables 
data_corpus$day <- day(data_corpus$date)
data_corpus$month <- month(data_corpus$date)
data_corpus$year <- year(data_corpus$date)

但是,像“27-02-2012”这样的日期会 提取如下,这意味着月份被正确提取,但是“年”是从原始“日期”变量中的日期值中提取的,我不确定“天”的值是如何生成的?

   "date"        day   month    year
"27-02-2012"      20    2        27

下面是创建上述 3 个变量后变量的存储方式:

sapply(data_corpus, class)
      post        date    username         day       month        year 
"character" "character" "character"   "integer"   "numeric"   "numeric" 

我们可以使用

library(lubridate)
data_corpus$date <- dmy(data_corpus$date)

base R

data_corpus$date <- as.Date(data_corpus$date, "%d-%m-%Y")