R 如何将多个变量转换为具有不同日期格式的日期?
我的数据是这样的R 如何将多个变量转换为具有不同日期格式的日期?,r,date,R,Date,我的数据是这样的 Date1 Date2 Date3 13/12/2019 2018/05/21 21/05/2019 2019/13/12 21/05/21 05/21/2019 变量内部和跨变量的日期格式不同。我想将其转换为as.Date作为所有变量的通用格式%d/%m%Y”。 我该怎么做 请帮忙 一个选项是parse\u date\u time library(tidyverse) library(lubri
Date1 Date2 Date3
13/12/2019 2018/05/21 21/05/2019
2019/13/12 21/05/21 05/21/2019
变量内部和跨变量的日期格式不同。我想将其转换为as.Date作为所有变量的通用格式%d/%m%Y”
。
我该怎么做
请帮忙 一个选项是
parse\u date\u time
library(tidyverse)
library(lubridate)
df1 %>%
mutate_all(parse_date_time, orders = c("mdy", "ymd", "dmy", "ydm"))
# Date1 Date2 Date3
#1 2019-12-13 2018-05-21 2019-05-21
#2 2019-12-13 2021-05-21 2019-05-21
或者另一个选项是来自
anytime
的anydate
。使用getFormats()
检查默认格式列表中是否存在所有格式,如果缺少某些格式,请添加使用addFormats
的格式,然后应用于每列
library(anytime)
addFormats(c("%d/%m/%Y", "%Y/d/%m", "%d/%m/%y"))
df1 %>%
mutate_all(anydate)
如果有更多的列并且只想为“日期”列实现,请使用mutate\u at
df1 %>%
mutate_at(vars(starts_with("Date")), anydate)
或指定索引(在原始数据集中)
数据
df1好的。我的数据也有分类变量。我可以只选择日期类型变量并应用parse\u date\u time来执行此操作吗?“这可能吗?”詹尼弗瑟斯说。然后使用mutate_at
指定变量mutate_at(vars(matches)(“Date\\d+”),解析_Date_time,…
我的数据还有其他变量,如X、Y、Z以及Date1 Date2和Date3。DF[,c(4,5,6)]应转换为as.Date。
df1 %>%
mutate_at(4:6, anydate)
df1 <- structure(list(Date1 = c("13/12/2019", "2019/13/12"), Date2 = c("2018/05/21",
"21/05/21"), Date3 = c("21/05/2019", "05/21/2019")),
class = "data.frame", row.names = c(NA,
-2L))