Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/82.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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 如何更改任何格式(如20080408或2008/04/08或08/04/2008)的日期_R_Date - Fatal编程技术网

R 如何更改任何格式(如20080408或2008/04/08或08/04/2008)的日期

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

请帮助我,因为我有一个大型数据库的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 <- 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"