R:转换数据表的日期列
我有一个CSV表,其中包含一个包含不同格式日期字符串的日期列。我想编写一个小函数,尝试将这些字符串转换为日期对象。想法是尝试不同的日期格式,直到可以解析日期:R:转换数据表的日期列,r,R,我有一个CSV表,其中包含一个包含不同格式日期字符串的日期列。我想编写一个小函数,尝试将这些字符串转换为日期对象。想法是尝试不同的日期格式,直到可以解析日期: parseDate <- function(date){ formats <- c("%d.%m.%y %H:%M", "%Y-%m-%d %H:%M:%S", "%m-%d-%Y-%H:%M:%S") for(format in formats){ newDate <- strptime(date,
parseDate <- function(date){
formats <- c("%d.%m.%y %H:%M", "%Y-%m-%d %H:%M:%S", "%m-%d-%Y-%H:%M:%S")
for(format in formats){
newDate <- strptime(date, format=format)
if(!is.na(newDate)){
return(newDate)
}
}
print(paste0("Invalid input: ", date))
return(NA)
}
column1 <- c("2014-11-14 14:20:16", "24.11.14 9:48", "24.11.14 9:49")
table <- data.frame(column1)
table$column1 = lapply(table$column1, FUN = parseDate)
parseDate您可以尝试parse\u date\u time
它可以采用多种“格式”
也许是这样:
> do.call("c", lapply(table$column1, FUN = parseDate))
[1] "2014-11-14 14:20:16 AEDT" "2014-11-24 09:48:00 AEDT"
[3] "2014-11-24 09:49:00 AEDT"
> do.call("c", lapply(table$column1, FUN = parseDate))
[1] "2014-11-14 14:20:16 AEDT" "2014-11-24 09:48:00 AEDT"
[3] "2014-11-24 09:49:00 AEDT"