【问题标题】:How to convert date from mm/dd/YYYY to dd/mm/YYYY in R?如何在 R 中将日期从 mm/dd/YYYY 转换为 dd/mm/YYYY?
【发布时间】:2020-04-20 04:55:17
【问题描述】:

R 中的犯罪分析数据:

假设我有一个包含数百万列的非常大的数据集。其中一列具有日期,例如“2020 年 3 月 28 日”(mm/dd/YYYY)格式。

为了我的分析,我需要一个格式(dd/mm/YYYY)

我有一个示例代码:

conv <- function(a)
{ 
  dd <- strsplit(a,"/")[[1]][2]
  mm <- strsplit(a,"/")[[1]][1]
  yyyy <- strsplit(a,"/")[[1]][3]
  com <- paste(dd,mm,yyyy,sep="/")
  return(com)
             }
   a <- as.character(crime.data$Arrest.Date)
   conv(a)

当我这样做时,我得到转换的日期,但只有一个。也就是说,它只在列中输出日期日期。我想要转换所有日期。

有什么办法可以在 R 中做到这一点吗?或 R 中的任何其他函数?

【问题讨论】:

    标签: r function date


    【解决方案1】:

    不要对日期时间操作使用正则表达式或字符串操作。

    转换为标准日期类,然后使用format 获取所需格式的数据。

    format(as.Date('3/28/2020', '%m/%d/%Y'), '%d/%m/%Y')
    #[1] "28/03/2020"
    

    【讨论】:

    • 我赞成(因为它很干净),但是关于解析/(重新)格式化日期和时间戳有很多问题。 (不过,我明白,回答它通常比找到许多骗子中的一个更容易。)
    • 我敢肯定有很多这样的问题,但格式化日期/时间和正则表达式是两类问题,我很犹豫要不要找到一个骗子,因为它们通常太具体了。
    【解决方案2】:

    我们可以使用lubridate

    library(lubridate)
    format(mdy("3/28/2010"), "%d/%m/%Y")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多