R 如何更改任何格式(如20080408或2008/04/08或08/04/2008)的日期
请帮助我,因为我有一个大型数据库的csv文件,其中的日期列有各种格式的日期,如R 如何更改任何格式(如20080408或2008/04/08或08/04/2008)的日期,r,date,R,Date,请帮助我,因为我有一个大型数据库的csv文件,其中的日期列有各种格式的日期,如20080408或2008/04/08或08/04/2008。如何将这些格式更改为dd/mm/yyyyy。在R编程中,您可以将它们作为字符值读取,并使用as.Date x1 <- '20080408' ## class character (string) x2 <- '2008/04/08' x1.dt <- as.Date(x1, format='%Y%m%d') x2.dt <-
20080408
或2008/04/08
或08/04/2008
。如何将这些格式更改为dd/mm/yyyyy
。在R编程中,您可以将它们作为字符
值读取,并使用as.Date
x1 <- '20080408' ## class character (string)
x2 <- '2008/04/08'
x1.dt <- as.Date(x1, format='%Y%m%d')
x2.dt <- as.Date(x2, format='%Y/%m/%d') ## different format
print(c(x1, x2), format='%d/%m/%Y') ## you can return Date objects in any format you want
x1以下内容适用于您的data.frame
。您可能需要将日期列转换为类as.character
,以便字符串拆分函数strsplit
正常工作。在tha之后,循环只计算第一个“/”字符之前的字符串中有多少个字符,并相应地调整格式
例子:
您也可以通过lubridate
dmy
和mdy
转换来进行故障测试(因此suppressWarnings()
调用)。如果08
被认为是“一天”,我认为您将无法确保正确处理“08/04/2008”
组件,tho,假设函数不能读取心智
library(lubridate)
dat <- c("20080408", "2008/04/08", "08/04/2008")
dat.1 <- unlist(lapply(dat, function(x) {
suppressWarnings(res <- mdy(x))
if (is.na(res)) { suppressWarnings(res <- ymd(x)) }
return(as.character(res))
}))
dat.1
## [1] "2008-04-08" "2008-04-08" "2008-08-04"
库(lubridate)
dat谢谢Ashish我需要更多的帮助,因为我是R的新手。我想检查50000数据集中有多少不同格式的日期的数据集,然后我想对其应用Single日期格式。我该怎么做
df
# DATE DATE2
#1 20080408 2008-04-08
#2 2008/04/08 2008-04-08
#3 08/04/2008 2008-04-08
library(lubridate)
dat <- c("20080408", "2008/04/08", "08/04/2008")
dat.1 <- unlist(lapply(dat, function(x) {
suppressWarnings(res <- mdy(x))
if (is.na(res)) { suppressWarnings(res <- ymd(x)) }
return(as.character(res))
}))
dat.1
## [1] "2008-04-08" "2008-04-08" "2008-08-04"