如何将字符日期(1931年2月12日)转换为日期格式(Y,m,d)

时间:2019-10-18 22:07:50

标签: r

我在将数据框列从读取txt文件的任何格式转换为日期格式时遇到问题。

movie_df <- read.csv("scary_movies.txt",
                     stringsAsFactors = FALSE,
                     na.strings = c("NA", ""),
                     sep = "\t")

这就是我们读取文件的方式。

有一个称为ReleaseDate的列,其日期格式为:1931年2月12日。如何将其更改为1931/2/12。

如果我使用strptime(),则该列显示为NA。

1 个答案:

答案 0 :(得分:1)

一种选择是将Date转换为as.Date类,然后format转换为所需格式

movie_df$ReleaseDate <- format(as.Date(movie_df$ReleaseDate,
        "%B %d, %Y"), '%Y/%m/%d')

带有可复制的示例

format(as.Date('February 12, 1931', "%B %d, %Y"), '%Y/%m/%d')
#[1] "1931/02/12"

如果需要删除天/月中的前导0,则

sub("^(\\d{4})-0?(\\d{1,2})-0?(\\d{1,2})$", "\\1/\\2/\\3", 
       as.Date('February 12, 1931', "%B %d, %Y"))
#[1] "1931/2/12"