如何在 r 中将字符串转换为日期(附示例)


通常,当您将日期和时间数据导入到 R 中时,这些值将作为字符串导入。

在 R 中将字符串转换为日期的最简单方法是使用as.Date()函数,该函数使用以下语法:

like.Date(x, 格式)

金子:

  • x:单个字符串值或字符串值向量。
  • format:日期使用的格式。默认值为 YYYY-MM-DD。

您可以使用 R 中的?strftime命令来显示用于日期格式的可用参数的完整列表,但最常见的包括:

  • %d:十进制数形式的月份日期 (01-31)
  • %m:十进制数形式的月份 (01-12)
  • %y:不带世纪的年份(例如 04)
  • %Y:带有世纪的年份(例如 2004)

本教程展示了as.Date()函数实际使用的几个示例。

示例 1:将单个字符串转换为日期

以下代码显示如何将单个字符串值转换为日期:

 #create string value
x <- c(" 2021-07-24 ")

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

[1] "2021-07-24"

#check class of new variable
class(new)

[1] “Date”

示例 2:将字符串向量转换为日期

以下代码显示如何将字符串向量转换为日期:

 #create vector of strings
x <- c(" 2021-07-24 ", " 2021-07-26 ", " 2021-07-30 ")

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

[1] "2021-07-24" "2021-07-26" "2021-07-30"

#check class of new variable
class(new)

[1] “Date”

示例 3:将数据框列转换为日期

以下代码展示了如何将一列数据区块链转换为日期:

 #create data frame
df <- data.frame(day = c(" 2021-07-24 ", " 2021-07-26 ", " 2021-07-30 "),
                 sales=c(22, 25, 28),
                 products=c(3, 6, 7))

#view structure of data frame
str(df)

'data.frame': 3 obs. of 3 variables:
 $ day: Factor w/ 3 levels "2021-07-24","2021-07-26",..: 1 2 3
 $ sales: num 22 25 28
 $products: num 3 6 7

#convert day variable to date
df$day <- as.Date(df$day, format=" %Y-%m-%d ")

#view structure of new data frame
str(df)

'data.frame': 3 obs. of 3 variables:
 $day: Date, format: "2021-07-24" "2021-07-26" ...
 $ sales: num 22 25 28
 $products: num 3 6 7

示例 4:将多个日期范围列转换为日期

以下代码展示了如何将多列数据区块链转换为日期:

 #create data frame
df <- data.frame(start = c(" 2021-07-24 ", " 2021-07-26 ", " 2021-07-30 "),
                 end = c(" 2021-07-25 ", " 2021-07-28 ", " 2021-08-02 "),
                 products=c(3, 6, 7))

#view structure of data frame
str(df)

'data.frame': 3 obs. of 3 variables:
 $ start: Factor w/ 3 levels "2021-07-24","2021-07-26",..: 1 2 3
 $ end: Factor w/ 3 levels "2021-07-25","2021-07-28",..: 1 2 3
 $products: num 3 6 7

#convert start and end variables to date
df[,c(' start ', ' end ')] = lapply (df[,c(' start ', ' end ')],
                                function(x) as.Date(x, format=" %Y-%m-%d "))

#view structure of new data frame
str(df)

'data.frame': 3 obs. of 3 variables:
 $start: Date, format: "2021-07-24" "2021-07-26" ...
 $end: Date, format: "2021-07-25" "2021-07-28" ...
 $products: num 3 6 7

您可以在此处了解有关此示例中使用的lapply()函数的更多信息。

其他资源

以下教程提供了有关如何在 R 中使用日期的更多信息:

R 中日期格式的完整指南
如何在 R 中按日期对数据框进行排序
如何从R中的日期中提取年份

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注