如何在R中使用as.Date()函数(附实例)

152 阅读3分钟

你可以在R中使用as.Date() 函数来快速转换字符对象为日期对象。

这个函数使用以下基本语法;

as.Date(x, format, tryFormats = c("%Y-%m-%d", "%Y/%m/%d")

where:

  • x:要转换为日期的对象的名称。
  • 格式:日期字符串的格式。如果没有指定,它将尝试其中的一个 tryFormats。
  • tryFormats :要尝试的格式。

下面的例子展示了如何在不同情况下使用这个函数。

例1:使用as.Date()与可识别的日期格式

默认情况下,如果字符对象的格式是以下方式之一,**as.Date()**函数可以轻松地将字符对象转换为日期对象:

  • %Y-%m-%d
  • %Y/%m/%d

下面的代码显示了如何使用as.Date()函数将一个格式为%Y-%m-%d的字符对象转换为一个日期对象:

#define character object in %Y-%m-%d format
x <- "2022-10-15"

#view class of x
class(x)

[1] "character"

#convert character object to date object
my_date <- as.Date(x)

#view new date object
my_date

[1] "2022-10-15"

#view class of my_date
class(my_date)

[1] "Date"

我们可以看到,这个字符对象已经被转换为一个日期对象。

下面的代码显示了如何使用as.Date()函数将一个格式为%Y/%m/%d的字符对象转换为一个日期对象:

#define character object in %Y/%m/%d format
x <- "2022/10/15"

#convert character object to date object
my_date <- as.Date(x)

#view class of my_date
class(my_date)

[1] "Date"

我们可以看到,这个字符对象已经被转换为一个日期对象。

对于这两个例子,我们都不需要在as.Date()函数中使用格式参数,因为这两种日期格式都被R识别。

例2:对无法识别的日期格式使用as.Date()

当字符对象具有不可识别的日期格式时,你必须使用format参数来指定格式。

例如,下面的代码显示了如何使用as.Date()函数将一个具有%m/%d/%Y格式的字符对象转换为一个日期对象:

#define character object in %m/%d/%Y format
x <- "10/15/2022"

#convert character object to date object
my_date <- as.Date(x, format="%m/%d/%Y")

#view new date object
my_date

[1] "2022-10-15"

#view class of my_date
class(my_date)

[1] "Date"

我们可以看到,这个字符对象已经被转换为一个日期对象。

而下面的代码显示了如何使用as.Date()函数将一个格式为%m%d%Y的字符对象转换为日期对象:

#define character object in %m%d%Y format
x <- "10152022"

#convert character object to date object
my_date <- as.Date(x, format="%m%d%Y")

#view new date object
my_date

[1] "2022-10-15"

#view class of my_date
class(my_date)

[1] "Date"

字符对象已经成功转换为日期对象。

其他资源

下面的教程解释了如何在R中执行其他常见的操作:

如何在R中把UNIX时间戳转换为日期
如何在R中把因子转换为日期
如何在R中按日期对数据框进行排序
如何在R中从日期中提取年份