我有一个大型数据库CSV-FILE,其中包含多个日期字段(>;30) 所有日期在CSV文件中都显示为yyyy-mm-dd(即2023-09-13). 当使用Read.csv2导入时,所有日期都被格式化为字符串(Chr),我可以手动转换每一列,但由于日期太多,我希望找到一种更流畅的方法来修复它.
有没有什么聪明的方法可以让R首先正确地将这些日期作为日期格式导入?
db <- read.csv2("~/Dropbox/data_in.csv", sep=";")
个
我有一个大型数据库CSV-FILE,其中包含多个日期字段(>;30) 所有日期在CSV文件中都显示为yyyy-mm-dd(即2023-09-13). 当使用Read.csv2导入时,所有日期都被格式化为字符串(Chr),我可以手动转换每一列,但由于日期太多,我希望找到一种更流畅的方法来修复它.
有没有什么聪明的方法可以让R首先正确地将这些日期作为日期格式导入?
db <- read.csv2("~/Dropbox/data_in.csv", sep=";")
个
您可以使用across
并从dplyr
包中 Select 辅助对象来更改多个变量:
library(dplyr)
#>
#> Attaching package: 'dplyr'
#> The following objects are masked from 'package:stats':
#>
#> filter, lag
#> The following objects are masked from 'package:base':
#>
#> intersect, setdiff, setequal, union
dat <- data.frame(
id = 1:100,
date1 = rep("2023-09-13", 100),
date2 = rep("2023-09-13", 100),
date3 = rep("2023-09-13", 100),
date4 = rep("2023-09-13", 100),
date5 = rep("2023-09-13", 100)
)
str(dat)
#> 'data.frame': 100 obs. of 6 variables:
#> $ id : int 1 2 3 4 5 6 7 8 9 10 ...
#> $ date1: chr "2023-09-13" "2023-09-13" "2023-09-13" "2023-09-13" ...
#> $ date2: chr "2023-09-13" "2023-09-13" "2023-09-13" "2023-09-13" ...
#> $ date3: chr "2023-09-13" "2023-09-13" "2023-09-13" "2023-09-13" ...
#> $ date4: chr "2023-09-13" "2023-09-13" "2023-09-13" "2023-09-13" ...
#> $ date5: chr "2023-09-13" "2023-09-13" "2023-09-13" "2023-09-13" ...
dat |>
mutate(across(starts_with("date"), as.Date)) |>
str()
#> 'data.frame': 100 obs. of 6 variables:
#> $ id : int 1 2 3 4 5 6 7 8 9 10 ...
#> $ date1: Date, format: "2023-09-13" "2023-09-13" ...
#> $ date2: Date, format: "2023-09-13" "2023-09-13" ...
#> $ date3: Date, format: "2023-09-13" "2023-09-13" ...
#> $ date4: Date, format: "2023-09-13" "2023-09-13" ...
#> $ date5: Date, format: "2023-09-13" "2023-09-13" ...
dat |>
mutate(across(2:6, as.Date)) |>
str()
#> 'data.frame': 100 obs. of 6 variables:
#> $ id : int 1 2 3 4 5 6 7 8 9 10 ...
#> $ date1: Date, format: "2023-09-13" "2023-09-13" ...
#> $ date2: Date, format: "2023-09-13" "2023-09-13" ...
#> $ date3: Date, format: "2023-09-13" "2023-09-13" ...
#> $ date4: Date, format: "2023-09-13" "2023-09-13" ...
#> $ date5: Date, format: "2023-09-13" "2023-09-13" ...
创建于2023-09-13年第reprex v2.0.2页
还有其他几个helper函数,请参见``dplyr::selt`.