将 chr 字符串的列转换为 R 中的日期

问题描述 投票:0回答:1

我有两列应该是数据集上的日期(从 .csv 文件导入)

A tibble: 18 × 6
   date1      date2   
   <chr>      <chr>      
 1 21/02/2024 26/02/2024 
 2 12/02/2024 14/02/2024 
 3 12/02/2024 13/02/2024 
 4 09/02/2024 11/02/2024 
 5 10/02/2024 14/02/2024 
 6 27/02/2024 02/03/2024 
 7 10/02/2024 14/02/2024 
 8 02/02/2024 04/02/2024 

但是我想进一步分析我的数据,并且我希望 R 将它们读取为日期。格式为日/月/年

我尝试了很多组合,但总是出错。我最近的尝试如下

dataset <- dataset %>%
  select(date1) %>%
    as.Date(format = "%d-%m-%Y")

错误:

Error in as.Date.default(., format = "%d-%m-%Y") : 
  do not know how to convert '.' to class “Date”

我已经多次看到 as.date 编码格式,但我不知道我做错了什么。

r date
1个回答
0
投票

as.Date
中输入的格式需要与输入列中文本的特定格式相匹配。

library(dplyr)

dataset
#>        date1      date2
#> 1 21/02/2024 26/02/2024
#> 2 12/02/2024 14/02/2024
#> 3 12/02/2024 13/02/2024
#> 4 09/02/2024 11/02/2024
#> 5 10/02/2024 14/02/2024
#> 6 27/02/2024 02/03/2024
#> 7 10/02/2024 14/02/2024
#> 8 02/02/2024 04/02/2024

dataset %>%
  mutate(across(everything(), ~as.Date(., format = "%d/%m/%Y")))
#>        date1      date2
#> 1 2024-02-21 2024-02-26
#> 2 2024-02-12 2024-02-14
#> 3 2024-02-12 2024-02-13
#> 4 2024-02-09 2024-02-11
#> 5 2024-02-10 2024-02-14
#> 6 2024-02-27 2024-03-02
#> 7 2024-02-10 2024-02-14
#> 8 2024-02-02 2024-02-04

数据

dataset <- structure(list(date1 = c("21/02/2024", "12/02/2024", "12/02/2024", 
                                    "09/02/2024", "10/02/2024", "27/02/2024", "10/02/2024", "02/02/2024"
), date2 = c("26/02/2024", "14/02/2024", "13/02/2024", "11/02/2024", 
             "14/02/2024", "02/03/2024", "14/02/2024", "04/02/2024")), class = "data.frame", row.names = c(NA, 
                                                                                                           -8L))
© www.soinside.com 2019 - 2024. All rights reserved.