Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何将多个变量转换为具有不同日期格式的日期?_R_Date - Fatal编程技术网

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))