首页 > 解决方案 > 如何更改 R 中的日期格式?

问题描述

在我的数据集中,我有日期列(字符),其中日期的格式如下%d.%m.%Y。我想将日期更改为这种格式%Y-%m-%d。事实证明,这个简单的任务非常棘手。你会如何解决这个问题?

标签: rdate

解决方案


如果您的“日期”看起来像这样,那么它们是字符串,而不是日期,您可以使用字符串操作快速更改格式,如

f <- function(s) gsub("([^.]+)[.]([^.]+)+[.]([^.]+)", "\\3-\\2-\\1", s)

以下是其应用示例:

X <- data.frame(date = "12.3.2020")
X$newdate <- with(X, f(date))

印刷X生产

       date   newdate
1 12.3.2020 2020-3-12

如果要将这些日期保留为字符字段,则此方法更可取,因为它避免了转换为日期类型的(相对较大的)计算开销。正则表达式的这种使用gsub说明了人们在清理和预处理数据时经常经历的事情,并且除了重新格式化日期之外还具有(明显的)价值。


推荐阅读