在R中将YYYYMMDD转换为mm/dd/yyyy格式
我在R中有一个数据框,它有两个变量是日期,我需要计算它们之间的天数差。但是,它们的格式为YYYYMMDD。如何将其更改为R中可读的日期格式?这应该可以在R中将YYYYMMDD转换为mm/dd/yyyy格式,r,date,dataframe,R,Date,Dataframe,我在R中有一个数据框,它有两个变量是日期,我需要计算它们之间的天数差。但是,它们的格式为YYYYMMDD。如何将其更改为R中可读的日期格式?这应该可以 lubridate::ymd(given_date_format) 我喜欢anytime软件包中的anydate()。带实际数据的快速演示: R> set.seed(123) # be reproducible R> data <- data.frame(inp=Sys.Date() + cumsum(runif(10)
lubridate::ymd(given_date_format)
我喜欢anytime软件包中的anydate()
。带实际数据的快速演示:
R> set.seed(123) # be reproducible
R> data <- data.frame(inp=Sys.Date() + cumsum(runif(10)*10))
R> data$ymd <- format(data$inp, "%Y%m%d") ## as yyyymmdd
R> data$int <- as.integer(data$ymd) ## same as integer
R> library(anytime)
R> data$diff1 <- c(NA, diff(anydate(data$ymd))) # reads YMD
R> data$diff2 <- c(NA, diff(anydate(data$int))) # also reads int
R> data
inp ymd int diff1 diff2
1 2017-06-23 20170623 20170623 NA NA
2 2017-07-01 20170701 20170701 8 8
3 2017-07-05 20170705 20170705 4 4
4 2017-07-14 20170714 20170714 9 9
5 2017-07-24 20170724 20170724 10 10
6 2017-07-24 20170724 20170724 0 0
7 2017-07-29 20170729 20170729 5 5
8 2017-08-07 20170807 20170807 9 9
9 2017-08-13 20170813 20170813 6 6
10 2017-08-17 20170817 20170817 4 4
R>
R>set.seed(123)#可复制
R> 数据$ymd数据$int库(随时)
R> 数据$diff1数据$diff2数据
inp ymd int diff1 diff2
2017年6月23日20170623 20170623不适用
2 2017-07-01 20170701 20170701 8 8
3 2017-07-05 20170705 20170705 4 4
4 2017-07-14 20170714 20170714 9 9
5 2017-07-24 20170724 20170724 10 10
6 2017-07-24 20170724 20170724 0 0
7 2017-07-29 20170729 20170729 5 5
8 2017-08-07 20170807 20170807 9 9
9 2017-08-13 20170813 20170813 6 6
10 2017-08-17 20170817 20170817 4 4
R>
这里的第一列是我们工作的实际日期。然后生成第二列和第三列,以匹配OP的要求:YMD,字符或整数
然后,我们计算它们之间的差异,在没有前置数据的情况下解释第一个“丢失”的数据点差异,并显示这两种日期格式都有效。
as.date(df,format=“%m/%d/%Y”)
请使用dput
向我们提供数据样本。正如@G5W所说,请阅读搜索[r]转换日期格式< /代码>,我找到了几个可能的候选对象:也考虑使用软件包。