如何在R中将字符串向量转换为日期向量?

时间:2016-04-04 15:15:00

标签: r vector

我需要将字符串向量转换为日期向量。我尝试了以下方法:

convertStringsToDate <- function(a) {
output <- c()
for (i in 1:length(a)) {
    output[i] <- as.POSIXct(a, format ="%Y-%m-%dT%H:%M:%S");
}
return (output);
}

当我用日期字符串提供as.Posixct()部分时,它会起作用。在下面的函数中,输出是9个数字的向量,不等于测试日期。

此外,如果字符串包含毫秒,那么也会转换那些字符串。使用日期的R函数是否考虑毫秒?

1 个答案:

答案 0 :(得分:1)

您可以将字符串向量转换为不带for循环的日期向量,并包含毫秒。这是一个示例:

# Let's make simple vector of strings with in the form of: year-month-dayThour:minute:seconds.milliseconds
str_v <- c("2011-03-27T01:30:00.123", "2015-01-01T10:36:20.456")

dat_v <- as.POSIXct( str_v, format="%Y-%m-%dT%H:%M:%OS")
# [1] "2011-03-27 01:30:00 CET" "2015-01-01 10:36:20 CET"

format(dat_v, "%F %H:%M:%OS3")
#[1] "2011-03-27 01:30:00.122" "2015-01-01 10:36:20.456"
相关问题